前段时间学习了Python操作http接口,觉得挺容易的。最近项目组也有接触webservice接口,心里想想是否Python也可以操作这类接口。于是利用伟大的度娘,花了6个小时研究出来了,所以迫不及待更新一篇博文来分享。有兴趣讨论的同学可以加入我们的交流Q群:297669715。
一、准备环境
A:在线安装
webservice接口测试,需要用到suds库,网上百度的各种suds库都没法安装,我这里的Python3.5版本,所以安装不了那些suds库也没有办法在线安装,所以这里就提供一个大家都可用的方法和suds库。
1)下载suds库,地址:http://pypi.python.org/packages/source/s/suds-jurko/suds-jurko-0.4.1.jurko.4.zip#md5=769689edca81c34c0421a4145b08c264,文件名为:suds-jurko-0.4.1.jurko.4.zip
2)解压压缩包,放到Python安装路径下的scripts文件夹下面。
3)然后在cmd命令行中,进入到suds-jurko-0.4.1.jurko.4文件下面,输入命令: python setup.py install
4)安装成功
5)注意:如果在py中写代码 import suds报错,就要把suds-jurko-0.4.1.jurko.4文件夹下面的dist、suds以及suds_jurko.egg-info这三个文件夹,拷贝到Lib 下面的site-packages路径下面,就可以正常访问了。
B:在线安装
1)pip install suds
2)pip install suds-jurko
6)一切准备就绪,可以开始测试啦!
二、使用suds库来测试webservice接口
1)引入suds库,代码如下:
1 | from suds.client import Client |
2)创建一个webservice对象,来调用webservice里面的各类接口
1 2 | user_url = "http://120.24.235.105:8080/finance-user_info-war-1.0/ws/financeUserInfoFacade.ws?wsdl" #这里是你的webservice访问地址 client = Client(user_url) #Client里面直接放访问的URL,可以生成一个webservice对象 |
3)打印出这个wsdl地址里面的所有接口信息:
1 | print (client) #打印所webservice里面的所有接口方法名称,结果如下截图所示: |
4)利用soapui来看看webservice某个接口的组成和参数,其中一个注册接口,如下所示:
一共有6个参数,如果要在Python里面来传递这种参数,如何组装拼接,接着往下看。
5)如何传递参数值:
1 | t = { "channel_id" : 2 , "ip" : "129.45.6.7" , "mobile" :mobile , "pwd" : "123456" , "user_id" : "shabicu8" , "verify_code" :” 123456 ”} #用字典的方式传值 |
6)如何在Python中调用注册这个接口服务:
1 2 3 4 | result = client.service.userRegister(t) #client这个对象 ,调用service这个方法,然后再调用userRegister这个接口函数,函数里面传递刚刚我们准备 #好的得参数字典 t print (result) #打印返回结果 |
7)最后的返回结果打印如下:
其实测试webservice接口有很多种,但是我写出的这个,相对而言会比较的简单好理解。大家也可以参考这篇文章,跟官网的说明文档差不多,但是进行了一些详细的说明:
http://www.chengxuyuans.com/Python/64773.html(推荐)
转自:https://www.cnblogs.com/liulinghua90/p/5823021.html