Python如何调用RPC接口

  Python如何调用RPC接口是很多Python开发工程师比较关心的问题,本篇文章好程序员Python培训小编就给喜欢Python开发的小伙伴们分享一下Python调用RPC接口的详解,文中有详细的代码列出有很好的参考价值,喜欢的小伙伴就随小编一起来看一下吧,希望对大家有所帮助。

需要安装的python包如下:

1、grpc安装

pip install grpcio

2、grpc的python protobuf相关的编译工具

pip install grpcio-tools

3、protobuf相关python依赖库

pip install protobuf

4、一些常见原型的生成python类的集合:

pip install googleapis-common-protos

编译protobuf文件:使用以下命令生成Python代码:

python3 -m grpc_tools.protoc -I<目标路径目录> --python_out=. --grpc_python_out=<目标文件所在目录路径> <目标文件data.proto>

python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto

注意:protobuf文件,为定义服务接口代码文件,这里是data.proto

会生成:data_pb2.py 与 data_pb2_grpc.py

data_pb2.py是服务接口映射

data_pb2_grpc.py方法映射

protobuf内容示例:

syntax = "proto3";

package grpcDemo;

message HelloRequest {

string name = 1;

}

message HelloReply {

string message = 1;

}

service gRPC {

rpc SayHello (HelloRequest) returns (HelloReply) {}

}

接口调用内容示例:

# -*- coding: utf-8 -*-

import grpc

import data_pb2,data_pb2_grpc

_HOST = 'localhost'

_PORT = '8080'

def run():

conn = grpc.insecure_channel(_HOST + ':' + _PORT)

client = data_pb2_grpc.gRPCStub(channel=conn)

response = client.SayHello(data_pb2.HelloRequest(name='hello,world!'))

print("received: " + response.text)

if __name__ == '__main__':

run()

(0)

相关推荐

  • 干货 | 项目乏力?nanopb助你一臂之力

    说在前面的话 这是一篇2020年欠下的文章,一直搁置着,现在还上. 之前分享了两篇关于Protobuf的笔记:Protobuf:一种更小.更快.更高效的协议.Protobuf在嵌入式Linux平台使用 ...

  • gRPC vs REST:两种API架构风格的对比

    想知道未来是不是 gRPC 的天下?本文会具体介绍两种 API 架构风格:REST 和 gRPC,并讨论它们之间的区别.不过,首先,我们会解释什么是 API,以及为什么它对微服务基础设施而言至关重要. ...

  • 让 gRPC 提供 REST 服务

    Intro gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求 ...

  • 如何在.NET Core中为gRPC服务设计消息文件(Proto)

    今天 以下文章来源于DotNET技术圈 ,作者Peter Vogel 如何在.NET Core中为gRPC服务设计消息 使用协议缓冲区规范定义gRPC服务非常容易,但从需求转换为.NET Core,然 ...

  • Python如何调用服务接口

    Python如何调用服务接口,关于Python如何调用服务接口这个问题曾经也有不少的小伙伴询问过,本篇文章小编就给读者们实例介绍一下Python如何调用服务接口,希望对小伙伴有帮助. 下面上代码: # ...

  • VBS 调用web接口

    Dim objHTTP,xmlDOC,strWebserviceURL,strRequest,bOK,xmlStr Set objHTTP = CreateObject('MSXML2.XMLHTTP ...

  • python笔记44-HTTP对外接口sign签名

    前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求. sign签名是一种很常见的方式 sign签名 签名参数sign ...

  • vb调用K3接口解决方案(2)

    'Set ReturnCollection = GLView.ItemLookup(obj('FItemClassID'))          Set Dt = New KFO.Dictionary  ...

  • Delphi 调用webservice接口

    一.使用向导 1.导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址 http://www.webxml.com.c ...

  • Delphi 调用webservice接口的三类方法

    一.使用向导 1.导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址 http://www.webxml.com.c ...

  • Python如何调用系统命令?方法介绍!

    移动互联网技术的快速发展,为各大行业都提供了发展机遇,在市场的影响之下,Python语言变得更加火爆,渗透到各大领域,现在很多开发工作都会使用到Python,不过进行Python开发搭建框架的时候,往 ...

  • Python 中的面向接口编程

    "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝. 最 ...

  • uni-app调用wifi接口

    微信小程序条件渲染 在小程序app.json中添加 需要先获取位置信息 "permission": { "scope.userLocation": { &quo ...