[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Fedora-suds-list] An error in wsdl parsing?



Hello Pablo,

I tried analyzing the WSDL you gave, and it seems that the "Logon" method does not take a "Logon" instance, but two strings; username and password.

Here's my code:

import logging
from suds.serviceproxy import ServiceProxy

p = ServiceProxy('freeway.wsdl')
logging.getLogger('suds.serviceproxy').setLevel(logging.DEBUG)

print p.Logon('foo', 'bar')


And here's what suds sends:

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns="http://tempuri.org/ " xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
   <SOAP-ENV:Body>
      <tns:Logon>
         <Username>foo</Username>
         <Password>bar</Password>
      </tns:Logon>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


The service still raises an error:
faultstring = (System.Web.Services.Protocols.SoapException: You must specify both your username and password.at FreewayAuth.Logon(String Username, String Password))

...but that might be due to the wrong username and password?

HTH,
Jesper


On May 16, 2008, at 10:12 AM, Pablo Caro Revuelta wrote:

Hello

Is the first time I am trying connect to a soap web service using using
python. Existing libraries are very poor in my opinion (mainly by the
interface) but I like suds and would like use it because is very pleasant. But I have a problem with the concrete serviece I need to use and I didn't
find the solution.

The service description is:
https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?WSDL
and I neet call to "Logon" function.
The service runs correctly (I can use it with ZSI)

I tried:

{{{
vojo_auth_uri
= "https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?wsdl";
logger('suds.serviceproxy').setLevel(logging.DEBUG)
auth_proxy = ServiceProxy(vojo_auth_uri)
logon = auth_proxy.get_instance('Logon')
logon.Username.append("user")
logon.Password.append("password")
print auth_proxy.Logon(logon)

}}}

When I run that code I get this error "You must specify both your username and
password.at FreewayAuth.Logon(String Username, String Password)"

The problem is that suds does NOT send a correct xml.
The service expects (as documented in
https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?op=Logon ):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
 <soap:Body>
   <Logon xmlns="http://tempuri.org/";>
     <Username>string</Username>
     <Password>string</Password>
   </Logon>
 </soap:Body>
</soap:Envelope>

But the library send:

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:tns="http://tempuri.org/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
  <SOAP-ENV:Body>
     <tns:Logon>
        <Username>
           <Username>user</Username>
           <Password>password</Password>
        </Username>
     </tns:Logon>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The error: Note the extra Username tag.

Am I using the library correctly? Is an library error?

Thanks in advance

PD: Please excuse my bad english

--

Pablo Caro Revuelta
pcaro yaco es

Yaco Sistemas S.L.
http://www.yaco.es
C/ Sierpes 48, 41004 Sevilla (España)
Teléfono: 954 50 00 57
Fax 954 50 09 29


Este mensaje y sus documentos anexos son confidenciales y dirigidos
exclusivamente a los destinatarios de los mismos. Si por error, ha recibido este mensaje y no es el destinatario, por favor, notifíqueselo al remitente y no use, informe, distribuya, imprima, copie o difunda este mensaje por ningún
medio.

This message and any attached files are confidential. They are for the
intended recipients only. If an error has misdirected this e-mail to you, please, notify the author and do not use, disclose, distribute, copy, print
or relay this e-mail.


_______________________________________________
fedora-suds-list mailing list
fedora-suds-list redhat com
https://www.redhat.com/mailman/listinfo/fedora-suds-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]