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

Jesper Noehr jesper at noehr.org
Fri May 16 08:28:29 UTC 2008


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 at 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 at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-suds-list





More information about the fedora-suds-list mailing list