问答

go-micro客户端取不到服务端响应的数据

作者:admin 2021-09-18 我要评论

go-micro 使用的是 v2 版本 proto文件: syntax="proto3";package pb;message Response { string id=1; string name=2;}... 服务端的方法: type Say struct {}f...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

go-micro使用的是v2版本

proto文件:

syntax="proto3";

package pb;

message Response {
    string id=1;
    string name=2;
}
...

服务端的方法:

type Say struct {}

func (s *Say) Hello(_context.Context, in *pb.Request,out *pb.Response) error {
    fmt.Println(in)//客户端请求时这里能正常输出请求的数据
    
    //这样写,客户端取不到数据
    /*
    out = &pb.Response{
        Id: "111",
        Name: "张三",
    }
    */
    
    //这样写,客户端能取到数据
    out.Id = "111"
    out.Name = "张三"
    
    return nil
}
直接用结构给响应赋值,客户端取不到数据

而为每个字段单独赋值,客户端就可以取到数据

这是为什么呢?

###

注释的代码改的是形参吧,实际上对原来的out指向的数据并没有修改

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • go-micro客户端取不到服务端响应的数据

    go-micro客户端取不到服务端响应的数据

  • Flask-Whooshee的使用问题?

    Flask-Whooshee的使用问题?

  • git 分支的新建和合并疑惑

    git 分支的新建和合并疑惑

  • JavaScript 设置 get/set 两种方法有什

    JavaScript 设置 get/set 两种方法有什

腾讯云代理商
海外云服务器