*this is the client obj* client = SoapClient( location=location_wsdl, wsdl=wsdl, ns = ns, sessions=True, trace=True, http_headers={'Authorization': "Basic %s" % auth},username=username,password=password) client['AuthHeaderElement'] = {'Authorization': "Basic %s" % auth} client['http_header'] = {'Authorization': "Basic %s" % auth}
*This is the the 'init' call* client.call('init',('host','localhost'),('port','4859'),('user','CRSPRIXXXXX),('password','XXXX'),('pnumber','XXXX'),('db','XXXXXX'),('encoding',None),('titlePageSize',10),('indexPageSize',10)) *And this is the 'init' response* {'status': '200', 'transfer-encoding': 'chunked', 'set-cookie': 'JSESSIONID=4EDBE009B6A581E6023B9203365BF1EC; Path=/3diws', 'server': 'Apache-Coyote/1.1', 'date': 'Wed, 19 Mar 2014 15:23:24 GMT', 'content-type': 'text/xml;charset=utf-8'} *This is the the 'executeQuery' call* client.call('executeQuery',('query','[/doc/@nrecord]=00503459')) *This is the response to the 'ExecuteQuery' call* {'status': '500', 'transfer-encoding': 'chunked', 'set-cookie': 'JSESSIONID=ECC4905C2D52F7456F4968E2C30D6639; Path=/3diws', 'server': 'Apache-Coyote/1.1', 'connection': 'close', 'date': 'Wed, 19 Mar 2014 15:25:26 GMT', 'content-type': 'text/xml;charset=utf-8'} Il giorno mercoledì 19 marzo 2014 15:25:45 UTC+1, Mariano Reingart ha scritto: > > Could you send me the content of client.response (http headers)? > Maybe it is returning a cookie or something equivalent > Then, you can update client.http_headers with them and it should work > > Best regards, > > Mariano Reingart > http://www.sistemasagiles.com.ar > http://reingart.blogspot.com > > > On Wed, Mar 19, 2014 at 7:40 AM, piero crisci > <piero....@gmail.com<javascript:> > > wrote: > >> Hi mariano i still got some problem >> I solved the problem with the basic authentication but i still have some >> problem on calling webservice. >> The webservice infact need a first call for the db connection ('init' ) >> After this call you can call the other services. >> I made this code : >> >> from pysimplesoap.client import SoapClient >> from pysimplesoap.client import SoapClient, SimpleXMLElement >> location_wsdl = " *http://docway.demo.3di.it <http://docway.demo.3di.it>* >> /3diws/services/eXtraWay<http://docway.demo.3di.it/3diws/services/eXtraWay> >> " >> wsdl = *http://docway.demo.3di.it/ <http://docway.demo.3di.it/>* >> /3diws/services/eXtraWay?wsdl<http://10.55.38.247:8080/3diws/services/eXtraWay?wsdl> >> " >> namespace_wsdl = " >> *http://docway.demo.3di.it/*<http://www.google.com/url?q=http%3A%2F%2Fdocway.demo.3di.it%2F3diws%2Fservices%2FeXtraWay%3Fwsdl&sa=D&sntz=1&usg=AFQjCNFAe47af7Nlfx1k8KJR8x-hsRTOAg> >> 3diws/services/eXtraWay<http://10.55.38.247:8080/3diws/services/eXtraWay> >> " >> import base64 >> username='admin' >> password='xxxx' >> >> auth = base64.b64encode('%s:%s' % (username, password)) >> client = SoapClient(location = location_wsdl, >> wsdl=wsdl,*sessions=True,*namespace=namespace_wsdl, >> http_headers={'Authorization': "Basic %s" % >> auth},username=username,password=password) >> client['AuthHeaderElement'] = {'Authorization': "Basic %s" % auth} >> >> client.send('init',xml=xml_init) >> client.send('executeQuery',xml=xml_execute_query) >> When i call the 'executeQuery' i got as response that the connection is >> not established. The connection should be established with the 'Init' >> call . >> I got the same problem with SOAPUI but i managed to solve the problem >> activating the option "Maintain HTTP Session" >> Even putting sessions = True is not solving the problem >> Thank for help >> Piero >> >> Il giorno martedì 18 marzo 2014 07:26:35 UTC+1, Mariano Reingart ha >> scritto: >> >>> Hi piero: >>> >>> The first choice to connect to a webservice that requires username & >>> password (add_credentials), you will httplib2 installed: >>> >>> https://code.google.com/p/httplib2 >>> >>> Then you could do: >>> >>> client = SoapClient(location = location_wsdl,sessions=True,us >>> ername='admin',password='xxxxxx') >>> >>> Also, assuming your webservice supports basic auth, you could pass the >>> Authentication http header directly (it shouldn't need to install external >>> library): >>> >>> import base64 >>> auth = base64.b64encode('%s:%s' % (username, password)).replace('\n', '') >>> >>> client = SoapClient(location = location_wsdl, sessions=True, >>> http_headers={'Authorization': "Basic %s" % auth}) >>> >>> Let me know if this solves your issue, >>> >>> Best regards >>> >>> >>> Mariano Reingart >>> http://www.sistemasagiles.com.ar >>> http://reingart.blogspot.com >>> >>> >>> On Mon, Mar 17, 2014 at 6:02 PM, piero crisci <piero....@gmail.com>wrote: >>> >>>> Hello i am trying to connect to this wsdl: http://docway.demo.3di.it/ >>>> 3diws/services/eXtraWay?wsdl >>>> It requires http basic authentication and i am using pysimplesoap 1.10 >>>> and i tried this configuration: >>>> >>>> from pysimplesoap.client import SoapClient >>>> location_wsdl = "http://docway.demo.3di.it/3diws/services" >>>> wsdl = "http://docway.demo.3di.it/3diws/services/eXtraWay?wsdl" >>>> client = SoapClient(location = >>>> location_wsdl,sessions=True,http_headers={'username': >>>> 'admin', 'password': 'xxxx'},username='admin',password='xxxxxx') >>>> >>>> I got this error >>>> Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>> File "build\bdist.win32\egg\pysimplesoap\client.py", line 133, in >>>> __init__ >>>> File "build\bdist.win32\egg\pysimplesoap\client.py", line 469, in >>>> wsdl_parse >>>> File "build\bdist.win32\egg\pysimplesoap\helpers.py", line 71, in >>>> fetch >>>> File "build\bdist.win32\egg\pysimplesoap\transport.py", line 121, in >>>> request >>>> File "C:\python27\lib\urllib2.py", line 406, in open >>>> response = meth(req, response) >>>> File "C:\python27\lib\urllib2.py", line 519, in http_response >>>> 'http', request, response, code, msg, hdrs) >>>> File "C:\python27\lib\urllib2.py", line 444, in error >>>> return self._call_chain(*args) >>>> File "C:\python27\lib\urllib2.py", line 378, in _call_chain >>>> result = func(*args) >>>> File "C:\python27\lib\urllib2.py", line 527, in http_error_default >>>> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) >>>> urllib2.HTTPError: HTTP Error 401: Unauthorized >>>> >>>> It seems like the basic authenitcation is not supported. am I wrong? >>>> How i need to change the wsdl call? And how i can use a session to send >>>> different call? >>>> Thx for help! >>>> >>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "web2py-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to web2py+un...@googlegroups.com. >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to web2py+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.