Can't get around HTTP/401 response using SUDS

Discussion in 'Python' started by Adam Tauno Williams, Mar 8, 2012.

  1. SUDS version 0.4 pn x86_64 Python 2.7

    I'm having a bear of a time getting HTTP Basic Authentication to work
    for a SOAP request via suds. Also using an HTTP proxy server.

    In WireShark I just see a request -
    GET http://...../services/services/JobService-0.0.1?wsdl HTTP/1.1
    Accept-Encoding: identity
    Host: .......
    Connection: close
    User-Agent: Python-urllib/2.7

    This doesn't contain any authentication credentials so the response is
    HTTP/401, and the client doesn't retry with credentials. The response
    does come from the remote as I can see there is a WWW-Authenticate
    header and it is from an Apache Tomcat server - so it makes it through
    the proxy server.

    Code
    ================
    url = 'http://....../services/services/JobService-0.0.1?wsdl'
    proxy = urllib2.ProxyHandler({'http': 'http://.....:3128'})
    transport = suds.transport.http.HttpAuthenticated()
    transport.urlopener = urllib2.build_opener(proxy)
    client = suds.client.Client(url, transport=transport,
    username='******', password='********')
    .....

    I've tried the above as well as the method described at
    <http://blogs.oucs.ox.ac.uk/inapickle/2011/05/14/exchange-web-services-suds-and-python/> It has the same problem.


    Back Trace
    ================
    Traceback (most recent call last):
    File "etrace.py", line 30, in <module>
    client = suds.client.Client(url, transport=transport,
    username='*******', password='*****')
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/client.py", line 112, in __init__
    self.wsdl = reader.open(url)
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/reader.py", line 152, in open
    d = self.fn(url, self.options)
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/wsdl.py", line 136, in __init__
    d = reader.open(url)
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/reader.py", line 79, in open
    d = self.download(url)
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/reader.py", line 95, in download
    fp = self.options.transport.open(Request(url))
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/transport/http.py", line 173, in open
    return HttpTransport.open(self, request)
    File
    "/usr/local/lib/python2.7/site-packages/suds-0.4-py2.7.egg/suds/transport/http.py", line 64, in open
    raise TransportError(str(e), e.code, e.fp)
    suds.transport.TransportError: HTTP Error 401: Unauthorized

    --
    System & Network Administrator [ LPI & NCLA ]
    <http://www.whitemiceconsulting.com>
    OpenGroupware Developer <http://www.opengroupware.us>
    Adam Tauno Williams
     
    Adam Tauno Williams, Mar 8, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. mike
    Replies:
    5
    Views:
    973
    Keith M. Corbett
    Sep 21, 2004
  2. Replies:
    3
    Views:
    802
    Guillermo
    Apr 26, 2007
  3. Eric von Horst

    Help with suds: HTTP Error 401

    Eric von Horst, Jun 11, 2010, in forum: Python
    Replies:
    3
    Views:
    2,045
    plainsane
    Jun 21, 2010
  4. Adam Tauno Williams
    Replies:
    0
    Views:
    531
    Adam Tauno Williams
    Mar 10, 2012
  5. iMath
    Replies:
    3
    Views:
    144
    iMath
    Jan 7, 2013
Loading...

Share This Page