栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python之webservice的接口请求处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python之webservice的接口请求处理

1)引入suds库,代码如下:

from suds.client import Client

2)创建一个 webservice 对象,来调用 webservice 里面的各类接口 webservice 访问地址
user_url = "http://127.0.0.1:8081/PosMerchant/ZfMposPort"
client = Client(user_url)  # Client里面直接放访问的URL,可以生成一个 webservice 对象
3)打印出这个 wsdl 地址里面的所有接口信息:# 打印出 webservice 里面的所有接口方法名称,结果如下截图所示:
print(client)
4)利用 soapui(软件工具) 来看看 webservice 某个接口的组成和参数,其中一个注册接口,如下所示:
''
                                    ''
                                        ''
                                            ''
                                            ''+str(t['merCode'])+''
                                            ''+str(t['tranAmt'])+''
                                            ''+str(t['md5Str'])+''
                                            ''+str(t['termID'])+''
                                            ''+str(t['termCode'])+''
                                            ''+str(t['settDate'])+''
                                            ''
                                        ''
                                    ''
5)如何传递参数值:用字典的方式传值
t={"channel_id":2,"ip":"129.45.6.7","mobile":'mobile' ,"pwd":"123456","user_id" :"shabicu8","verify_code":'123456'}
6)如何在 Python 中调用注册这个接口服务: client这个对象 ,调用service这个方法,然后再调用userRegister这个接口函数,函数里面传递刚刚我们准备好的得参数字典 t

result = client.service.userRegister(body)

打印返回结果

print(result)

7)最后的返回结果打印如下: (result){retCode=‘0’,retInfo = ‘ok’}

二、写了一个封装好了的类。

from suds.client import Client
class WebServiceTest:
    def web_service_test(self, url, data, method):
        if method == 'sendMCode':
            res = Client(url).service.sendMCode(data)
        elif method == 'userRegister':
            res = Client(url).service.userRegister(data)
        elif method == 'verifiedUserAuth':
            res = Client(url).service.verifiedUserAuth(data)
        elif method == 'bindBankCard':
            res = Client(url).service.bindBankCard(data)
        return res

# 创建实例
Client = WebServiceTest()

url = 'http://120.24.235.105:9010/sms-service-war-1.0/ws/smsFacade.ws?wsdl'
data = {'client_ip': '192.168.10.66', 'smpl_id': '1', 'mobile': '15096090551'}
res = Client.web_service_test(url, data, 'sendMCode')
print('短信发送结果是:{0}'.format(res))

三、遍历全部url里面的webservice请求:

from suds.client import Client

class Webservice_Test:
    def __init__(self,url):
        self.client=Client(url)
    def get_methods_name(self):
        method_list = []
        for i in self.client.wsdl.services[0].ports[0].methods:
            method_list.append(i)
        return method_list
    #获取方法的参数
    def get_method_parm(self,method_name):
        method=self.client.wsdl.services[0].ports[0].methods[method_name]
        input_parames=method.binding.input
        params=input_parames.param_defs(method)[0]
        return params[1].name,params[1].type[0]
    def run_main(self):
        for method in self.get_methods_name():
            func=getattr(self.client.service,method)
            print(func('221.112.223.1'))
if __name__ == '__main__':
    url = 'http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl'
    web=Webservice_Test(url)
    # name=web.get_methods_name()[0]
    # print(web.get_method_parm(name))
    print(web.run_main())

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350818.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号