TypeError: descriptor ‘WhichOneof’ requires a ‘google.protobuf.pyext._message.CMessage’ object but received a ‘GeneratedProtocolMessageType’
这个报错的关键在于required ... but received a ...
也就是说,你传入的message的实例与请求的接口接受的message对象的类型不匹配。
还有一种可能:假如你使用的message是Empty
import "google/protobuf/empty.proto"
service Hello{
rpc sayhello (google.protobuf.Empty) returns (google.protobuf.Empty){}
}
当你使用的时候传入的是Empty而不是Empty(),也就是说,你传入的是一个message类型,而不是一个message实例。
本文探讨了在使用Protobuf时遇到TypeError的具体原因及其解决方案。主要分析了message实例与接口接受对象类型不匹配的问题,并提供了如何正确传递message实例的示例。

1万+

被折叠的 条评论
为什么被折叠?



