如何从 python gRPC 客户端访问尾随元数据

Mil*_*ney 4 grpc

这是我从服务器发送元数据的方式。

def DoSomething(self, request, context):
    response = detection2g_pb2.SomeResponse()
    response.message = 'done'
    _SERVER_TRAILING_METADATA = (
                                ('method_status', '1010'),
                                    ('error', 'No Error')
                                )
    context.set_trailing_metadata(_SERVER_TRAILING_METADATA)

    return response
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

res = _stub.DoSomething(req) 
    print (res.trailing_metadata()) 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到属性错误对象没有属性“trailing_metadata”。我想知道在客户端访问尾随元数据的方法。

小智 6

很抱歉,我们还没有说明元数据的示例,但您可以在此处with_call看到如何在调用端获取尾随元数据需要使用(or future,但这可能会以您不希望更改的方式更改控制流,所以我认为这with_call应该是你的第一选择)。我认为你的调用端代码应该看起来像

response, call = _stub.DoSomething.with_call(request) 
print(call.trailing_metadata())
Run Code Online (Sandbox Code Playgroud)

.