Milind Torney
Milind Torney

Reputation: 171

How to access trailing metadata from python gRPC client

Here is how I am sending the metadata from server.

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

Here is what I tried:

res = _stub.DoSomething(req) 
    print (res.trailing_metadata()) 

In this case I get Attribute Error object has no attribute 'trailing_metadata'. I want to know way to access the trailing metadata in the client side.

Upvotes: 5

Views: 3484

Answers (1)

I apologize that we don't yet have an example illustrating metadata but you can see here how getting the trailing metadata on the invocation side requires using with_call (or future, but that may change the control flow in a way that you don't want changed, so I think that with_call should be your first choice). I think your invocation-side code should look like

response, call = _stub.DoSomething.with_call(request) 
print(call.trailing_metadata())

.

Upvotes: 8

Related Questions