Robin Wittler wrote:
> On 21/12/11 10:54, jose soares wrote:
>
>> Robin Wittler wrote:
>>
>>> On 21/12/11 08:29, jo wrote:
>>>
>>>
>>>> Jurko Gospodnetić wrote:
>>>>
>>>>> Hi.
>>>>>
>>>>>
>>>>>> I'm trying to access to:
>>>>>>
url="https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl"
>>>>>>
>>>>>>
>>>>>> to have the wsdl but it requires an authentication.
>>>>>>
>>>>>> cl = Client(url)
>>>>>> suds.transport.TransportError: HTTP Error 401: Authorization
>>>>>> Required
>>>>>>
>>>>>> I tried too:
>>>>>> cl = Client(url, username='us',password='pwd')
>>>>>>
>>>>>> wiyhout success.
>>>>>>
>>>>>> Could someone tell me how to access to this authenticated url to
>>>>>> download the wsdl like lynx do?
>>>>>>
>>>>>> lynx -source -auth=us:pwd
>>>>>>
https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl
>>>>>>
>>>>> If you provide some sort of a username and password someone could
>>>>> possibly test this. Also, you did not provide the exact code you
>>>>> tried
>>>>> or say what exactly went wrong when you 'tried without
success'.
>>>>> I tried just now and running:
>>>>>
>>>>>> url =
"https://webservices.IZSLER.it/wsAnagrafeIZSLERphp?wsdl"
>>>>>> suds.client.Client(url)
>>>>>>
>>>>> raises an expected exception:
>>>>>
>>>>>> suds.transport.TransportError: HTTP Error 401: Authorization
>>>>>> Required
>>>>>>
>>>>> while running:
>>>>>
>>>>>> url =
"https://webservices.IZSLER.it/wsAnagrafeIZSLERphp?wsdl"
>>>>>> suds.client.Client(url, username="us",
password="pwd")
>>>>>>
>>>>> raises an expected exception:
>>>>>
>>>>>> suds.transport.TransportError: HTTP Error 401: basic auth failed
>>>>>>
>>>> the correct url is:
>>>> url =
>>>>
'https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl'
>>>> suds.client.Client(url=url, username="us",
password="pwd")
>>>>
>>>> and for me it returns a RuntimeError: maximum recursion depth exceeded
>>>> error when using username and password.
>>>> Even with real username and password (I'm sorry but I can't
reveal
>>>> the
>>>> real credentials because this is a production site).
>>>> mi version is:
>>>>
>>>>>>> suds.__version__
>>>>>>>
>>>> '0.4'
>>>>
>>>>
>>>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line
409, in
>>>> _open
>>>> '_open', req)
>>>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line
369, in
>>>> _call_chain
>>>> result = func(*args)
>>>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line
1169, in
>>>> https_open
>>>> return self.do_open(httplib.HTTPSConnection, req)
>>>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line
1134, in
>>>> do_open
>>>> r = h.getresponse()
>>>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line
986, in
>>>> getresponse
>>>> response.begin()
>>>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line
420, in
>>>> begin
>>>> self.msg = HTTPMessage(self.fp, 0)
>>>> File "/home/jose/.virtualenv/lib/python2.6/mimetools.py", line
25, in
>>>> __init__
>>>> rfc822.Message.__init__(self, fp, seekable)
>>>> File "/home/jose/.virtualenv/lib/python2.6/rfc822.py", line
108, in
>>>> __init__
>>>> self.readheaders()
>>>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line
276, in
>>>> readheaders
>>>> line = self.fp.readline()
>>>> File "/home/jose/.virtualenv/lib/python2.6/socket.py", line
397, in
>>>> readline
>>>> data = recv(1)
>>>> File "/home/jose/.virtualenv/lib/python2.6/ssl.py", line 96,
in
>>>> <lambda>
>>>> self.recv = lambda buflen=1024, flags=0: SSLSocket.recv(self,
>>>> buflen,
>>>> flags)
>>>> RuntimeError: maximum recursion depth exceeded
>>>>
>>>>
>>>>> since presumably user name "us" and password
"pwd" are not correct.
>>>>>
>>>>> Try to connect to the same URL using urllib. If you can do that -
>>>>> then suds should be able to connect to it as well (since it uses
>>>>> urllib under the hood).
>>>>>
>>>>> Hope this helps.
>>>>>
>>>>> Best regards,
>>>>> Jurko Gospodnetić
>>>>> _______________________________________________
>>>>> suds mailing list
>>>>> suds(a)lists.fedoraproject.org
>>>>>
https://admin.fedoraproject.org/mailman/listinfo/suds
>>>>>
>>>>
>>> Well, with your given url (and fake username and password) i am getting
>>> a "TransportError: HTTP Error 401: basic auth failed".
>>>
>>> So i assume that the transport layer works correctly.
>>>
>>> I have tested this with suds version 0.3.9 + 0.4 + 0.4.1.
>>> Unless you provide someone with the real credentials - there is nothing
>>> more to say.
>>>
>>> Hey, perhaps you can change the credentials for a "public" test
(you
>>> pick someone from the list, change the credentials for this person and
>>> this person can try it, after that - just change the credentials back).
>>>
>>>
>>> cheers,
>>> robin
>>> _______________________________________________
>>> suds mailing list
>>> suds(a)lists.fedoraproject.org
>>>
https://admin.fedoraproject.org/mailman/listinfo/suds
>>>
>> The problem here is not the credentials, Robin.
>> I don't know why you have a different response from me, even using the
>> fake credentials.
>>
>> The following two rows :
>>
>> from suds.client import Client
>>
Client(url='https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl',
>>
>> username="us", password="pwd")
>>
>> don't giveme a 401 error but this result instead:
>>
>> Traceback (most recent call last):
>> File "o", line 2, in <module>
>>
Client(url='https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl',
>>
>> username="us", password="pwd")
>> File "build/bdist.linux-x86_64/egg/suds/client.py", line 112, in
>> __init__
>> File "build/bdist.linux-x86_64/egg/suds/reader.py", line 152, in open
>> File "build/bdist.linux-x86_64/egg/suds/wsdl.py", line 136, in
__init__
>> File "build/bdist.linux-x86_64/egg/suds/reader.py", line 79, in open
>> File "build/bdist.linux-x86_64/egg/suds/reader.py", line 95, in
download
>> File "build/bdist.linux-x86_64/egg/suds/transport/https.py", line 60,
in
>> open
>> File "build/bdist.linux-x86_64/egg/suds/transport/http.py", line 62,
in
>> open
>> File "build/bdist.linux-x86_64/egg/suds/transport/http.py", line 118,
in
>> u2open
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 397, in
>> open
>> response = meth(req, response)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 510, in
>> http_response
>> 'http', request, response, code, msg, hdrs)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 429, in
>> error
>> result = self._call_chain(*args)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 369, in
>> _call_chain
>> result = func(*args)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 855, in
>> http_error_401
>> url, req, headers)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 833, in
>> http_error_auth_reqed
>> return self.retry_http_basic_auth(host, req, realm)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 843, in
>> retry_http_basic_auth
>> return self.parent.open(req, timeout=req.timeout)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 397, in
>> open
>> response = meth(req, response)
>> --------------------------------------------------------------------------------
>>
>> LOOP 107 TIMES ------------------------
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 510, in
>> http_response
>> 'http', request, response, code, msg, hdrs)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 429, in
>> error
>> result = self._call_chain(*args)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 369, in
>> _call_chain
>> result = func(*args)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 855, in
>> http_error_401
>> url, req, headers)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 833, in
>> http_error_auth_reqed
>> return self.retry_http_basic_auth(host, req, realm)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 843, in
>> retry_http_basic_auth
>> return self.parent.open(req, timeout=req.timeout)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 391, in
>> open
>> response = self._open(req, data)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 409, in
>> _open
>> '_open', req)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 369, in
>> _call_chain
>> result = func(*args)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 1169, in
>> https_open
>> return self.do_open(httplib.HTTPSConnection, req)
>> File "/home/jose/.virtualenv/lib/python2.6/urllib2.py", line 1134, in
>> do_open
>> r = h.getresponse()
>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line 986, in
>> getresponse
>> response.begin()
>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line 420, in
>> begin
>> self.msg = HTTPMessage(self.fp, 0)
>> File "/home/jose/.virtualenv/lib/python2.6/mimetools.py", line 25, in
>> __init__
>> rfc822.Message.__init__(self, fp, seekable)
>> File "/home/jose/.virtualenv/lib/python2.6/rfc822.py", line 108, in
>> __init__
>> self.readheaders()
>> File "/home/jose/.virtualenv/lib/python2.6/httplib.py", line 276, in
>> readheaders
>> line = self.fp.readline()
>> File "/home/jose/.virtualenv/lib/python2.6/socket.py", line 397, in
>> readline
>> data = recv(1)
>> File "/home/jose/.virtualenv/lib/python2.6/ssl.py", line 96, in
<lambda>
>> self.recv = lambda buflen=1024, flags=0: SSLSocket.recv(self, buflen,
>> flags)
>> RuntimeError: maximum recursion depth exceeded
>>
>>
> Well, i can not reproduce the error (and now i also test it with suds
> 0.4.2).
> I suggest you read about how to do logging in suds:
>
>
https://fedorahosted.org/suds/wiki/Documentation#LOGGING
>
> and provide us with more information.
>
>
with logging in DEBUG level there are only two added rows at the top of
traceback :
DEBUG:suds.wsdl:reading wsdl at:
https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl ...
DEBUG:suds.transport.http:opening
(
https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl)
Traceback (most recent call last):
File "o", line 2, in <module>
Client(url='https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl',username="us",
password="pwd")
.... <I avoid to put here the rest of the traceback because it is
exactly like before>
import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('suds.client').setLevel(logging.DEBUG) (I also tried
suds.transport and suds.wsdl with the same result)
from suds.client import Client
Client(url='https://webservices.IZSLER.it/wsAnagrafeIZSLER/gestioneUO.php?wsdl',
username="us", password="pwd")
Ok, you can fetch the wsdl - but it looks like there is some recursive
stuff in the wsdl (or xsd). So, without the wsdl (and/or the xsd) no one
can help you.
cheers,
robin