• python 调用 dubbo 接口


      公司后端服务使用 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 {}
    '.format(cmd).encode())
    # 获取telnet返回信息
    conn.read_until('dubbo>'.encode()).decode().split('
    ')[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 {}
    '.format(cmd).encode())
            data = self.conn.read_until(self.dubbo.encode()).decode().split('
    ')[0]
    
            return data
  • 相关阅读:
    2491 玉蟾宫
    1704 卡片游戏
    1020 孪生蜘蛛
    1215 迷宫
    3149 爱改名的小融 2
    1316 文化之旅 2012年NOIP全国联赛普及组
    1664 清凉冷水
    157. [USACO Nov07] 奶牛跨栏
    [SCOI2005]繁忙的都市
    【NOIP2014模拟赛No.1】我要的幸福
  • 原文地址:https://www.cnblogs.com/shenh/p/12796020.html
Copyright © 2020-2023  润新知