【问题标题】:how to connect with grpc server with some metadata in python?python - 如何使用python中的一些元数据连接grpc服务器?
【发布时间】:2017-08-15 01:54:29
【问题描述】:

我需要连接一个带有一些元数据的grpc服务器,例如用户名和密码。从grpc Docs,PHP代码很清楚,我认为这个代码可以工作:

$client = new Routeguide\RouteGuideClient('test.yintongzhibo.com:9002', [
'credentials' => Grpc\ChannelCredentials::createSsl(file_get_contents("xxx.pem")),
'update_metadata' => $metaProcessor,
'grpc.ssl_target_name_override' => 'test.yintongzhibo.com',]);

$metaProcessor = function($metadata,$client = []){
$values = $metadata;
$values[Username] = ['xxx'];
$values[Password] = ['yyy'];
return $values;}

list($resp,$status) = $client->getMarketData(request)->wait();

但是我需要在python中实现同样的事情。Python Docs不是很清楚,那么如何编写python代码来做和PHP代码一样的事情呢?

【问题讨论】:

  • 任何人都可以帮助我...非常紧急..我已经搜索了2天..但没有好的结果
  • 如果您将$values[username] = ['xxx'];$values[password] = ['yyy']; 与小写键一起使用,您是否会遇到同样的问题?

标签: php python authentication grpc


【解决方案1】:

存根有一个元数据字段。

例如: stub.SayHello(helloworld_pb2.HelloRequest(name='you'), metadata=[('key','value')])

【讨论】:

  • 我试过这个:stub.getMarketData(market_request,metadata=[('UserName','xxxx'),('Password','yyyy')]),但是错误信息是:"元数据无效:[('UserName','xxxx'),('Password','yyyy')]"...请帮助我..非常感谢!有我更详细的问题网址:stackoverflow.com/questions/45676398/…
  • 我试过这个方法:stackoverflow.com/questions/45071567/… this:myMetadata = (('username','xxxx'),('password','yyyy')),stub.getMarketData(market_request,metadata=myMetadata),但是错误meaasge是:不是所有的参数在字符串格式化过程中都被转换了。
  • 听起来你有一个与 gRPC 无关的问题。您提供的示例应该可以工作。
  • 但只有当我添加这段代码时,才会出现错误,我认为原因是这段代码可能不正确......你能给我一些关于这个的api链接吗?我在 grpc Docs 中没有找到这个。再次感谢
猜你喜欢
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多