zoukankan      html  css  js  c++  java
  • 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') # 需要一一对应
    
    
    
    
    
    
    
    
    
    


  • 相关阅读:
    掌控像素的虚实
    多用组合,少用继承
    HTML5的语法变化和新增加元素
    又逢六月
    设计心情之心情设计
    web2.0生成器(超过100个)[转]
    css+div CSS教程——元素定位
    项目进度
    清华大学统一认证接口与PHP的调用
    将51JOB的求职意向选择框Down了
  • 原文地址:https://www.cnblogs.com/who-care/p/9037794.html
Copyright © 2011-2022 走看看