#grpc #grpc-python
#grpc #grpc-python
Вопрос:
У меня есть сервер grpc с запросом типа:
service AbcService {
rpc GetInfo(GetInfoRequest) returns (GetInfoResponse) {}
}
message GetInfoRequest {}
message GetInfoResponse {
string hostname = 3;
}
И это мой клиент:
channel = grpc.insecure_channel('test.url:1025')
client = svc_pb2_grpc.AbcServiceStub(channel)
# get response
resp = client.GetInfo
Я сталкиваюсь с проблемами с клиентом, поскольку я не могу получить от него никакого ответа. grpcurl
работает просто отлично, используя:
grpcurl -plaintext test.url:1025 AbcService/GetInfo
resp = client.GetInfo
Правильно ли в клиенте вызывать этот вызов (который не ожидает какого-либо параметра запроса)?
Ответ №1:
«Заглушка» инкапсулирует ваш сервер в класс, где различные вызовы API (запросы / ответы) являются вызовами методов.
Итак, прежде всего: resp = client.GetInfo()
Тем не менее, GetInfo
ожидает an GetInfoRequest
, поэтому вам нужно:
resp = client.GetInfo(GetInfoRequest())