最基础的请求:
# -*—— coding:utf-8 -*-
"""
duubo测试实例:https://blog.csdn.net/cyjs1988/article/details/82495136
"""
import dubbo_telnet
# dubble服务器ip
host = '192.168.1.203'
# Dubble服务端口
port = 28008
# 初始化dubbo对象
conn = dubbo_telnet.connect(host,port)
# 设置telnet连接超时时间
conn.set_connect_timeout(10)
# 设置dubbo服务返回响应的编码
conn.set_encoding('gbk')
# 接口
interface = 'com.zrj.pay.trade.api.QueryTradeService'
# 方法
method = 'tradeDetailQuery'
# 参数
param = '{"message": "HelloWorld"}'
print(conn.invoke(interface, method, param))
command = 'invoke com.zrj.pay.trade.api.QueryTradeService.tradeDetailQuery({"message":"HelloWorld"})'
# 打印接口返回结果
print(conn.do(command))
结果:
优化:
# -*- coding:utf-8 -*-
"""
duubo测试实例:https://blog.csdn.net/cyjs1988/article/details/82495136
异常处理:https://www.runoob.com/python/python-exceptions.html
https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736
"""
import dubbo_telnet
def conndubbleData(host,port,interface,method,param):
try:
# 初始化dubbo对象
conn = dubbo_telnet.connect(host, port)
# 设置telnet连接超时时间
conn.set_connect_timeout(10)
# 设置dubbo服务返回响应的编码
conn.set_encoding('gbk')
conn.invoke(interface, method, param)
command = 'invoke %s.%s'%(interface,method,param)
return conn.do(command)
except:
# 可以control+b看源码(不管什么出现什么异常,函数返回一个异常)
# 这样调用方需要检测返回值是否为异常对象
return Exception
if __name__ == "__main__":
# dubble服务器ip
host = '192.168.1.203'
# Dubble服务端口
port = 28008
# 接口
interface = 'com.zrj.pay.trade.api.QueryTradeService'
# 方法
method = 'tradeDetailQuery'
# 参数
param = '{"message": "HelloWorld"}'
data = conndubbleData(host,port,interface,method,param)
# 打印接口返回结果
print(data)
遇到问题1-异常处理:
https://www.runoob.com/python/python-exceptions.html
https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736