Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #21408 > unrolled thread
| Started by | Rafael Durán Castañeda <rafadurancastaneda@gmail.com> |
|---|---|
| First post | 2012-03-09 00:03 +0100 |
| Last post | 2012-03-09 00:03 +0100 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: Can't get around HTTP/401 response using SUDS Rafael Durán Castañeda <rafadurancastaneda@gmail.com> - 2012-03-09 00:03 +0100
| From | Rafael Durán Castañeda <rafadurancastaneda@gmail.com> |
|---|---|
| Date | 2012-03-09 00:03 +0100 |
| Subject | Re: Can't get around HTTP/401 response using SUDS |
| Message-ID | <mailman.523.1331247792.3037.python-list@python.org> |
El 08/03/12 16:44, Adam Tauno Williams escribió:
> 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
>
When I've got issues like yours, I usually try using a console client
(telnet/curl/wget,...) adding all needed headers/data manually so I'm
totally sure the request is OK, if everything goes Ok you know your
python code need to be reviewed but when you are under proxies you can
find a lot of not python related issues (bad gateways, using proxy when
it shouldn't or vice-versa, requests changed by proxy,....).
wireshark can be very useful but in situations like this I usually
prefer tcpflow output, I think the request/response flow showed is
really useful, but that's a personal preference.
HTH,
bye
Back to top | Article view | comp.lang.python
csiph-web