1
我想创建一个与suds,一个python库的SOAP请求。不过我有点卡住了。我已经研究过关于此的其他主题。但不能解决我的问题。似乎类型从命名空间(ns1)中缺失。 OK代码:缺少类型名称空间泡沫SOAP python
from suds.client import Client
from suds.xsd.doctor import Import, ImportDoctor
url = "https://relatics.relaticsonline.com/DataExchange.asmx?wsdl"
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('http://www.relatics.com/')
d = ImportDoctor(imp)
client = Client(url, doctor=d, location="https://rijkswaterstaat.relaticsonline.com/DataExchange.asmx")
print(client)
输出如下:
Service (DataExchange) tns="http://www.relatics.com/"
Prefixes (2)
ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
ns1 = "http://www.relatics.com/"
Ports (2):
(DataExchangeSoap)
Methods (2):
GetResult(xs:string Operation, Identification Identification, Parameters Parameters, Authentication Authentication)
Import(xs:string Operation, Identification Identification, Authentication Authentication, xs:string Filename, xs:string Data)
Types (48):
ns0:Array
ns0:ENTITIES
ns0:ENTITY
ns0:ID
ns0:IDREF
ns0:IDREFS
ns0:NCName
ns0:NMTOKEN
ns0:NMTOKENS
ns0:NOTATION
ns0:Name
ns0:QName
ns0:Struct
ns0:anyURI
ns0:arrayCoordinate
.....
没有类型的命名空间 “NS1”。所以我甚至不能提出请求,因为我需要为Authentication/Identification/Parameters创建一个对象。
我认为模式出于某种原因出了问题。但我无法弄清楚。
这可能是泡沫中的一个错误。不幸的是,fedorahosted上的泡沫版本实际上没有维护。作为第一步,我建议尝试[jurko-suds](https://bitbucket.org/jurko/suds)(泡沫分叉),[pysimplesoap](https://github.com/pysimplesoap/pysimplesoap)或[肥皂鱼](http://www.soapfish.org)(免责声明:我对肥皂鱼做出了贡献)。 – 2014-11-24 08:20:10