程序开发 · 2025年5月29日

gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?

最近发现不少小伙伴都对
GOLANG很感兴趣,所以今天继续给大家介绍
GOLANG相关的知识,本文
《gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?》主要内容涉及到
等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~,
,
关于 grpc-gateway http 请求 stream 流式响应时无法解析返回值,
问题:,http 请求 stream 流式响应时,响应内容正确,但使用 runtime.jsonpb.decode 时,解码结果为一组 nil。,
解决方法:,
修改后的单元测试示例:,到这里,我们也就讲完了《gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注GOLANG公众号,带你了解更多关于的知识点!,关于 grpc-gateway http 请求 stream 流式响应时无法解析返回值,最近发现不少小伙伴都对
GOLANG很感兴趣,所以今天继续给大家介绍
GOLANG相关的知识,本文
《gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?》主要内容涉及到
等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~,

当前位置: > > > > gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?

gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?

2024-11-12 21:51:45
0浏览
收藏

最近发现不少小伙伴都对GOLANG很感兴趣,所以今天继续给大家介绍GOLANG相关的知识,本文《gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

关于 grpc-gateway http 请求 stream 流式响应时无法解析返回值

问题:

http 请求 stream 流式响应时,响应内容正确,但使用 runtime.jsonpb.decode 时,解码结果为一组 nil。

解决方法:

  1. 升级 grpc-gateway 版本:将 grpc-gateway 升级到最新版(>=2.4.0)。
  2. 修改 protobuf 文件:在 protobuf 文件中,由于 grpc-gateway 返回值中多了一个 result 字段,需要新增以下 message:

    message httpresp {
      resp result = 1;
    }
  3. 修改解码逻辑:在解码时,使用新定义的 httpresp message 代替 resp message:

    var result *pb.httpresp // 注意不要使用 *pb.resp
    err := dencoder.decode(&result) // &result  

修改后的单元测试示例:

for {
    var result *pb.HttpResp // 注意不要使用 *pb.Resp
    err := dencoder.Decode(&result) // &result  
    if err == nil {
        t.Logf("resp: %+v", result)
    } else {
        t.Logf("%+v", err)
        break
    }
}

到这里,我们也就讲完了《gRPC-Gateway HTTP 请求 Stream 流式响应时,返回值无法解析,如何解决?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注GOLANG公众号,带你了解更多关于的知识点!

Go 代码中变量声明:为什么可以重复声明变量名,但不能重新声明常量?
Django 多应用中模型引用:为什么 PyCharm 报错?