开发者

Problem with python soap library suds. Wsdl was not understood

The code below throw a SAXParseException: "mismatched tag":

from suds.client impo开发者_StackOverflow中文版rt Client <br>
url = 'http://www.didww.com/api/?wsdl'
client = Client(url, cache=None)      
print client

Is it problem with suds, or there is some errors in wsdl?


Have you looked at the WSDL file in a browser or XML viewer? That should answer your question as to whether the problem is in the wsdl. The exception suggests there is something up with it.


Seems to work for me, suds 0.3.3 (without cache option - None is not a valid option for cache in my version of 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


I have tried to reproduce your problem but all works for me.

i'm using suds 0.4

running

from suds.client import Client

client = Client('http://api.didww.com/api/index.php?wsdl', cache=None)

print client

gives

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

I guess they had a broken wsdl file for a bit, but all seems fine now

hope that helps

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜