使用suds這個第三方模塊
from suds.client import Client url = 'http://ip:port/?wsdl' cilent=Client(url) print cilent
查看webservice接口的具體信息:
調用接口方法,通常
client.service.methodname
實際測試過程中遇到的坑:
1、tns 值為Localhost
之前查看接口信息時,未發(fā)現tns="http://Localhost:4567/Interface.wsdl", 這個被設置成Localhost,導致通過接口調用時,只能在webservice接口本地服務器上才能調用成功,其他服務器調用時,接口中的方法都無法獲取。大坑!
解決方法:修改webservice接口對應的wsdl文件 Interface.wsdl,將其中的Localhost改成具體ip即可。
2、接口方法名不符合python命名規(guī)范
比如上述的方法,無法直接這樣調用
解決辦法: python內置函數getattr 。 getattr(cilent.service,'ser-GetAreaID')('1')
3、接口方法傳參
此方法為例
1、方法一:
soap_rep=getattr(soapService, 'ser-SetValue')(nSetFlag=1,nSystemID=1,nRecordNo=440002028,nTableNo=18,cValue='225',UserName='admin')
2、方法二:
soap_rep=getattr(soapService, 'ser-SetValue')(1,1,440002028,18,'225','admin') # 需要一一對應
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
