1. 程式人生 > >dubbo接口測試

dubbo接口測試

.com 出現 comm telnet命令 png lag mar 技術 端口號

window下使用telnet請求dubbo接口:

1、windows添加telnet

控制面板——》程序和功能——》打開或關閉windows功能——》安裝Telnet客戶端

技術分享圖片

2、cmd打開Windows控制臺;

3、使用telnet命令打開控制臺:telnet ip 端口號 例如:telnet 192.168.200.22 40908

4、打開telnet控制臺後,回車,出現dubbo>,

5、使用invoke命令註入,命令:服務名.方法名(參數) ,回車後即可請求dubbo接口

如果註入的是json

那就直接傳入json串就ok了,如果是基礎數據類型,也可以分別對應參數直接傳
invoke XxxService.xxxMethod({“prop”: “value”}, 1, “1”)
如果註入的是對象(com.cn.Test。具體的方法名:test(List tList))
對象,我們也是按照json的格式傳,只不過在每個對象後都需要指定具體的這個對象具體所屬的類型。
invoke XxxService.xxxMethod([{“key”:“11”,“merchantId”:“888”,“skuId”:“111”,“class”:“com.cn.Test”}])

python使用telnet請求dubbo接口

telnetlib為python自帶模塊,無需安裝,可直接使用,具體代碼如下
import telnetlib, json


class Dubbo(telnetlib.Telnet):
prompt = ‘dubbo>‘
coding = ‘gbk‘

def __init__(self, host=None, port=0):
super().__init__(host, port)
self.write(b"\n")

def command(self, flag, str_=""):
data = self.read_until(flag.encode()) #輸入 dubbo>
self.write(str_.encode(‘gbk‘) + b"\n") #輸入 invoke 服務名.方法名(參數) 加回車
return data

def invoke(self, service_name, method_name, arg):
command_str = "invoke {0}.{1}({2})".format(service_name, method_name, arg) #組裝invoke 服務名.方法名(參數)
print(command_str)
self.command(Dubbo.prompt, command_str)
data = self.command(Dubbo.prompt, "\n")
print(data)
data = json.loads(data.decode(Dubbo.coding, errors=‘ignore‘).split(‘\n‘)[0].strip())
return data


if __name__ == ‘__main__‘:
conn = Dubbo(‘IP‘, 端口號) #建立telnet連接
name = "雙溪漂流旅遊旗艦店"
result = conn.invoke(
"com.sendinfo.internal.product.OpenTaoBaoAppInterface",
"findOpenTaobaoAppDto",
{‘appKey‘: ‘21330348‘,
‘nick‘: name,
‘deleted‘: ‘F‘
}
)
print(‘*****************以下是接口返回結果*****************‘)
print(result)

dubbo接口測試