python 如何調(diào)用 dubbo 接口
公司后端服務(wù)使用 java 重構(gòu)后,很多接口采用了阿里的 dubbo 協(xié)議。而 python 是無(wú)法直接調(diào)用 dubbo 接口的,但可以通過(guò) telnet 調(diào)用,具體可以通過(guò) telnetlib 模塊的 Telnet類(lèi) 來(lái)調(diào)用,只需要四行代碼即可實(shí)現(xiàn):
import telnetlib# 創(chuàng)建telnet類(lèi)對(duì)象conn = telnetlib.Telnet()# 連接dubbo接口地址conn.open(host, port)#1.cmd命令格式: 接口全名字.方法名(參數(shù)1,參數(shù)2,參數(shù)3...參數(shù)n) 2.write方法就是通過(guò)telnet發(fā)起dubbo請(qǐng)求,參數(shù)和單獨(dú)使用telnet一致conn.write(’invoke {}n’.format(cmd).encode())# 獲取telnet返回信息conn.read_until(’dubbo>’.encode()).decode().split(’rn’)[0]
分裝成類(lèi):
class Dubbo(object): ’’’ 方法調(diào)用案例: conn = Dubbo(’127.0.0.1’, 18080) #格式: 接口全名字.方法名(參數(shù)1,參數(shù)2,參數(shù)3...參數(shù)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(’rn’)[0] return data
以上就是python 如何調(diào)用 dubbo 接口的詳細(xì)內(nèi)容,更多關(guān)于python 調(diào)用 dubbo 接口的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式2. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))3. html中的form不提交(排除)某些input 原創(chuàng)4. 利用CSS制作3D動(dòng)畫(huà)5. XML解析錯(cuò)誤:未組織好 的解決辦法6. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單7. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器8. jsp實(shí)現(xiàn)局部刷新頁(yè)面、異步加載頁(yè)面的方法9. 使用css實(shí)現(xiàn)全兼容tooltip提示框10. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法
