help with SUDS

Ismar Sehic i.sheeha at gmail.com
Mon Sep 23 14:08:02 EDT 2013


hello, i'm trying to make a wrapper for making xml requests to hotelbeds.com site.
this is what i got:


import logging
from suds.xsd.doctor import ImportDoctor, Import
from suds.plugin import Plugin
logging.basicConfig(level = logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
from suds.client import Client
url = 'http://xxx.xxx.xxx.xx/appservices/ws/FrontendService?wsdl'

imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
doctor = ImportDoctor(imp)
client = Client(url, doctor = doctor)

print client

rw = client.service.getHotelValuedAvail()
print rw)
print client 
****************
which gives me following result : 
Suds ( https://fedorahosted.org/suds/ )  version: 0.4 GA  build: R699-20100913

Service ( FrontendServiceService ) tns="http://www.hotelbeds.com/wsdl/2005/06"
   Prefixes (1)
     ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
  Ports (1):
      (FrontendService)
         Methods (34):
           cancelProtectionAdd(xs:anyType cancelProtectionAdd, )
           cancelProtectionRemove(xs:anyType cancelProtectionRemove, )
        getCancelProtectionAvail(xs:anyType getCancelProtectionAvail, )
        getCarCountryList(xs:anyType getCarCountryList, )
        getCarInfoSet(xs:anyType getCarInfoSet, )
        getCarValuedAvail(xs:anyType getCarValuedAvail, )
        getCountryList(xs:anyType getCountryList, )
        getDestinationGroupList(xs:anyType getDestinationGroupList, )
        getHotelBoardGroupList(xs:anyType getHotelBoardGroupList, )
        getHotelBoardList(xs:anyType getHotelBoardList, )
        getHotelCategoryGroupList(xs:anyType getHotelCategoryGroupList, )
        getHotelCategoryList(xs:anyType getHotelCategoryList, )
        getHotelCountryList(xs:anyType getHotelCountryList, )
        getHotelDetail(xs:anyType getHotelDetail, )
        getHotelList(xs:anyType getHotelList, )
        getHotelRoomTypeGroupList(xs:anyType getHotelRoomTypeGroupList, )
        getHotelValuedAvail(xs:anyType getHotelValuedAvail, )
        getIncomingOfficeDetail(xs:anyType getIncomingOfficeDetail, )
        getIncomingOfficeList(xs:anyType getIncomingOfficeList, )
        getPurchaseDetail(xs:anyType getPurchaseDetail, )
        getPurchaseList(xs:anyType getPurchaseList, )
        getTicketAvail(xs:anyType getTicketAvail, )
        getTicketClassificationList(xs:anyType getTicketClassificationList, )
        getTicketCountryList(xs:anyType getTicketCountryList, )
        getTicketDetail(xs:anyType getTicketDetail, )
        getTicketValuation(xs:anyType getTicketValuation, )
        getTransferCountryList(xs:anyType getTransferCountryList, )
        getTransferValuedAvail(xs:anyType getTransferValuedAvail, )
        getZoneGroupList(xs:anyType getZoneGroupList, )
        purchaseCancel(xs:anyType purchaseCancel, )
        purchaseConfirm(xs:anyType purchaseConfirm, )
        purchaseFlush(xs:anyType purchaseFlush, )
        serviceAdd(xs:anyType serviceAdd, )
        serviceRemove(xs:anyType serviceRemove, )
     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
        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



    DEBUG:suds.client:sending to (http://212.170.239.71:9091/appservices 
    /ws/FrontendService)
    message:
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:ns0="http://axis.frontend.hydra.hotelbeds.com"     
    xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org
    /2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Header/>
       <ns1:Body>
      <ns0:getHotelValuedAvail/>
   </ns1:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:headers = {'SOAPAction': u'""', 'Content-Type': 'text/xml; charset=utf-8'}
Traceback (most recent call last):
  File "soaptest.py", line 23, in <module>
    rw = client.service.getHotelValuedAvail()
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py", line 542, in __call__
    return client.invoke(args, kwargs)
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py", line 602, in invoke
    result = self.send(soapenv)
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py", line 637, in send
    reply = transport.send(request)
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/transport/https.py", line 64, in send
    return  HttpTransport.send(self, request)
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/transport/http.py", line 77, in send
    fp = self.u2open(u2request)
  File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/transport/http.py", line 118, in u2open
    return url.open(u2request, timeout=tm)
  File "/usr/lib/python2.6/urllib2.py", line 391, in open
    response = self._open(req, data)
  File "/usr/lib/python2.6/urllib2.py", line 409, in _open
    '_open', req)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 1172, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.6/urllib2.py", line 1147, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>
**********************************************************************

this is how the xml request should look like:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<hb:getHotelValuedAvail
xmlns:hb="http://axis.frontend.hydra.hotelbeds.com" xsi:type="xsd:string">
<HotelValuedAvailRQ echoToken="DummyEchoToken"
sessionId="DummySessionId"
xmlns="http://www.hotelbeds.com/schemas/2005/06/messages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hotelbeds.com/schemas/2005/06/messages HotelValuedAvailRQ.xsd">
<Language>ENG</Language>
<Credentials>
<User>TEST</User>
<Password>TEST</Password>
</Credentials>
<PaginationData pageNumber="1"/>
<CheckInDate date="20130709"/>
<CheckOutDate date="20130711"/>
<Destination code="PMI" type="SIMPLE"/>
<OccupancyList>
<HotelOccupancy>
<RoomCount>1</RoomCount>
<Occupancy>
<AdultCount>2</AdultCount>
<ChildCount>0</ChildCount>
</Occupancy>
</HotelOccupancy>
</OccupancyList>
</HotelValuedAvailRQ>
</hb:getHotelValuedAvail>
</soapenv:Body>
</soapenv:Envelope>

i cannot use any of these methods with suds, i keep getting type not found errors.is it a problem with namespaces, or the wsdl file is corrupted?if you have any idea, i would really appreciate it.thanks.



More information about the Python-list mailing list