1. 程式人生 > 程式設計 >python 如何呼叫 dubbo 介面

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,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 介面的資料請關注我們其它相關文章!