python調用webservice接口


使用suds這個第三方模塊 

from suds.client import Client
url = 'http://ip:port/?wsdl'
cilent=Client(url)
print cilent

查看webservice接口的具體信息:

調用接口方法,通常 client.service.methodname 

 

實際測試過程中遇到的坑:

1、tns 值為Localhost

之前查看接口信息時,未發現tns="http://Localhost:4567/Interface.wsdl",這個被設置成Localhost,導致通過接口調用時,只能在webservice接口本地服務器上才能調用成功,其他服務器調用時,接口中的方法都無法獲取。大坑!

解決方法:修改webservice接口對應的wsdl文件 Interface.wsdl,將其中的Localhost改成具體ip即可。

 

2、接口方法名不符合python命名規范

 比如上述的方法,無法直接這樣調用    

解決辦法: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') # 需要一一對應

 

 

 

 
        

 

 

 
        

 

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM