尝试使用echosign SOAP API。

wsdl在这里:https://secure.echosign.com/services/EchoSignDocumentService14?wsdl

当我尝试创建某些对象时,即使在print client中列出了它,它也似乎无法找到该类型。

import suds

url = "https://secure.echosign.com/services/EchoSignDocumentService14?wsdl"

client = suds.client.Client(url)
print client


  Service ( EchoSignDocumentService14 ) tns="http://api.echosign"
     Prefixes (10)
        ns0 = "http://api.echosign"
        ns1 = "http://dto.api.echosign"
        ns2 = "http://dto10.api.echosign"
        ns3 = "http://dto11.api.echosign"
        ns4 = "http://dto12.api.echosign"
        ns5 = "http://dto13.api.echosign"
        ns15 = "http://dto14.api.echosign"
        ns16 = "http://dto7.api.echosign"
        ns17 = "http://dto8.api.echosign"
        ns18 = "http://dto9.api.echosign"
     Ports (1):
        (EchoSignDocumentService14HttpPort)
           Methods (45):
                 ...
           Types (146):
              ns1:CallbackInfo
              ns17:WidgetCreationInfo


简洁起见,但显示了我现在关注的名称空间和2种类型。

尝试运行WCI = client.factory.create("ns17:WidgetCreationInfo")会产生此错误:


  
    
      client.factory.create(“ ns17:WidgetCreationInfo”)
      追溯(最近一次通话):
        文件“”,第1行,位于
        创建文件“ build / bdist.macosx-10.7-intel / egg / suds / client.py”,第244行
      suds.BuildError:
              构建(ns17:WidgetCreationInfo)的实例时发生错误。结果是
              您请求的对象无法构建。推荐
              您使用Suds对象手动构造类型。
              请打开票证并说明此错误。
              原因:找不到类型:'((CallbackInfo,http://dto.api.echosign,)'
    
  


因此,它似乎无法找到CallbackInfo类型。也许是因为它缺少那里的ns?

最佳答案

再次,在这里发布15分钟后弄清楚。

suds可以对所有名称空间进行异花授粉,因此它们都可以相互导入其他模式。可以在构造函数中或使用autoblend方法设置set_options

suds.client.Client(url, autoblend=True)

关于python - Python suds错误创建对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11532756/

10-12 23:19