python 如何调用 dubbo 接口


Posted in Python onSeptember 24, 2020

公司后端服务使用 java 重构后,很多接口采用了阿里的 dubbo 协议。而 python 是无法直接调用 dubbo 接口的,但可以通过 telnet 调用,具体可以通过 telnetlib 模块的 Telnet类 来调用,只需要四行代码即可实现:

import telnetlib

# 创建telnet类对象
conn = telnetlib.Telnet()
# 连接dubbo接口地址
conn.open(host, port)
#1.cmd命令格式: 接口全名字.方法名(参数1,参数2,参数3...参数n) 2.write方法就是通过telnet发起dubbo请求,参数和单独使用telnet一致
conn.write('invoke {}\n'.format(cmd).encode())
# 获取telnet返回信息
conn.read_until('dubbo>'.encode()).decode().split('\r\n')[0]

分装成类:

class Dubbo(object):
  '''
  方法调用案例:
  conn = Dubbo('127.0.0.1', 18080)
  #格式: 接口全名字.方法名(参数1,参数2,参数3...参数n)
  cmd = 'xxx.xxx.xx.xxxx.xxxx.xxxx.xxxx(268,"sz",1587288615000,1587634215000,0,10)'
  response = json.loads(conn.reuqest(cmd))
  '''
  dubbo = 'dubbo>'

  def __init__(self,host,port):
    self.conn = telnetlib.Telnet()
    self.conn.open(host, port)

  def request(self,cmd):
    self.conn.write('invoke {}\n'.format(cmd).encode())
    data = self.conn.read_until(self.dubbo.encode()).decode().split('\r\n')[0]

    return data

以上就是python 如何调用 dubbo 接口的详细内容,更多关于python 调用 dubbo 接口的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
Django app配置多个数据库代码实例
Dec 17 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
Python 中的 copy()和deepcopy()
Nov 07 Python
python matplotlib绘制三维图的示例
Sep 24 #Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 #Python
Django路由层URLconf作用及原理解析
Sep 24 #Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 #Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 #Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 #Python
python 多线程共享全局变量的优劣
Sep 24 #Python
You might like
php SQL防注入代码集合
2008/04/25 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python中的默认参数详解
2015/06/24 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python 获取字符串MD5值方法
2018/05/29 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
总经理职责范文
2013/11/08 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript