遇到dubbo接口 ,用python怎么写模拟请求呢?

# -*- coding=utf-8 -*-
import json
import telnetlib
import socket


class dubbo(telnetlib.Telnet):
promat = 'dubbo>'

def __init__(self, host=None, port=0):
telnetlib.Telnet.__init__(self, host, port, timeout=socket._GLOBAL_DEFAULT_TIMEOUT)
self.write(b'\n')

def command(self, flag, str_=""):
data = self.read_until(flag.encode())
self.write(str_.encode() + b"\n")
return data

def invoke(self, service_name, method_name, arg):
command_str = "invoke {0}.{1}({2})".format(
service_name, method_name, json.dumps(arg))
self.command(dubbo.promat, command_str)
data = self.command(dubbo.promat, "")
data = json.loads(data.decode('gbk', errors='ignore').split('\n')[0].strip())
return data


先来是dubbo接口封装的公共函数 写好了之后


conn = dubbo('IP', 端口)
json_data = {请求参数}
result = conn.invoke(
"dubbo接口地址",
"request",
json_data
)
print result



posted @ 2020-08-26 14:50  以泪为证  阅读(374)  评论(0)    收藏  举报