def _ToJSON(self, value): if isinstance(value, semantic_pb2.AnyValue): proto = utils.TypeUrlToMessage(value.type_url) proto.ParseFromString(value.value) return self._ToJSON(proto) elif isinstance(value, message.Message): result = {} for descriptor, value in value.ListFields(): result[descriptor.name] = self._ToJSON(value) return result else: return value
def SendRequest(self, handler_name, args): self._InitializeIfNeeded() method_descriptor = self.api_methods[handler_name] request = self.BuildRequest(method_descriptor, args) prepped_request = request.prepare() session = requests.Session() response = session.send(prepped_request) self._CheckResponseStatus(response) content = response.content json_str = content[len(self.JSON_PREFIX):] logger.debug("%s response (%s, %d):\n%s", request.method, request.url, response.status_code, content) if method_descriptor.result_type_descriptor.name: default_value = method_descriptor.result_type_descriptor.default result = utils.TypeUrlToMessage(default_value.type_url) json_format.Parse(json_str, result) return result