下面的代码抛出 SAXParseException: "mismatched tag":
from suds.client import Client <br>
url = 'http://www.didww.com/api/?wsdl'
client = Client(url, cache=None)
print client
是suds有问题,还是wsdl有问题?
您是否在浏览器或 XML 查看器中查看过 WSDL 文件?那应该回答您关于问题是否在 wsdl 中的问题。异常表明它有问题。
suds 0.3.3 似乎对我有用(没有缓存选项 - None 在我的 suds 版本中不是缓存的有效选项):
In [4]: from suds.client import Client
In [5]: url = 'https://xml.192.com/IDSearch.cfc?wsdl'
In [6]: c = Client(url)
In [7]: print c
Suds ( https://fedorahosted.org/suds/ ) version: 0.3.3 GA build: R413-20081204
Service ( IDSearch ) tns="http://corpwsdl.oneninetwo"
Prefixes (1)
ns0 = "http://rpc.xml.coldfusion"
Ports (1):
(IDSearch.cfc)
Methods (1):
search(xs:string xml, )
Types (1):
ns0:CFCInvocationException
我试图重现您的问题,但一切都对我有用。
我正在使用泡沫 0.4
跑步
from suds.client import Client
client = Client('http://api.didww.com/api/index.php?wsdl', cache=None)
print client
给
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913
Service ( DID World Wide ) tns="urn:didww"
Prefixes (2)
ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
ns1 = "urn:didww"
Ports (1):
(DID World WidePort)
Methods (11):
buildmapping(xs:string auth_string, xs:int did_id, xs:string map_proto,s:string map_uri, xs:int add_did, )
change_mapping(xs:string auth_string, xs:string did_number, xs:string map_proto, xs:string map_uri, xs:int add_did, )
did_cancel(xs:string auth_string, xs:string did_number, )
get_did_details(xs:string auth_string, xs:string did_number, )
get_region_details(xs:string auth_string, xs:string uniq, )
getcities(xs:string auth_string, xs:int country_id, )
getcountries(xs:string auth_string, )
new_order_renew(xs:string auth_string, xs:string did_number, xs:int period, xs:int autorenew, )
neworder(xs:string auth_string, xs:string hashkey, xs:string uniq, xs:int autorenew, xs:int period, )
order_autorenew_status(xs:string auth_string, xs:string did_number, xs:int status, )
order_cancel(xs:string auth_string, xs:string did_number, )
Types (55):
ns0:Array
CitiesArray
City
CountriesArray
Country
DID
DID_data
ns0:ENTITIES
ns0:ENTITY
ns0:ID
ns0:IDREF
ns0:IDREFS
ns0:NCName
ns0:NMTOKEN
ns0:NMTOKENS
ns0:NOTATION
ns0:Name
ns0:QName
Region
ns0:Struct
ns0:anyURI
ns0:arrayCoordinate
ns0:base64
ns0:base64Binary
ns0:boolean
ns0:byte
ns0:date
ns0:dateTime
ns0:decimal
ns0:double
ns0:duration
ns0:float
ns0:gDay
ns0:gMonth
ns0:gMonthDay
ns0:gYear
ns0:gYearMonth
ns0:hexBinary
ns0:int
ns0:integer
ns0:language
ns0:long
ns0:negativeInteger
ns0:nonNegativeInteger
ns0:nonPositiveInteger
ns0:normalizedString
ns0:positiveInteger
ns0:short
ns0:string
ns0:time
ns0:token
ns0:unsignedByte
ns0:unsignedInt
ns0:unsignedLong
ns0:unsignedShort
我猜他们的 wsdl 文件有一段时间损坏了,但现在一切似乎都很好
希望有帮助