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 {}\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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM