[Python] soap & python
Giorgio Zoppi
giorgio.zoppi a gmail.com
Gio 10 Apr 2008 14:29:01 CEST
2008/4/10, Alessandro Dentella <sandro a e-den.it>:
> Ho finalmente chiarito come è il protocollo. Ho quattro metodi che accettano
> un solo parametro scringa che a sua volta è un xml. (sotto CRED).
>
> Ora mi fermo un po' più in la...
>
>
> On Tue, Apr 01, 2008 at 03:21:02PM +0200, Giorgio Zoppi wrote:
> > ZSI è l'ideale.
> > http://www.programmazione.it/index.php?entity=eitem&idItem=37378
>
>
> il tuo articolo parla del lato server a me serviva il lato client.
Ce il codice allegato con client e server.
> Ho come l'impressione che tutti lo considerino la parte banale e quindi non
> spieghino nulla...
>
> Ho poi trovato questo articolo:
>
> http://www.kb.ucla.edu/articles/how-to-create-a-python-class-from-a-soap-wsdl
>
> che mi ha guidato nella comprensione di come passare i parametri dei metodi
> esposti, cosa che non mi era affatto chiara.
>
> Vorrei capire come attivre il debug del codice xml scambiato, ciò che con
> SOAPpy era:
>
> server.soapproxy.config.dumpSOAPOut = 1
> server.soapproxy.config.dumpSOAPIn = 1
>
> ma con zsi non lo capisco.
>
>
>
>
> Attalmente quindi faccio così:
>
> CRED = """
> <richiesta>
> <credenziali>
> <username>myuser</username>
> <password>mypass</password>
> </credenziali>
> </richiesta>
> """
>
> from ws_ricarica_sistemi_esterni_services import *
>
> locator = ws_ricarica_sistemi_esterniLocator()
> myport = locator.getws_ricarica_sistemi_esterniSoap()
>
>
> myrequest = SaldoSoapIn()
> myrequest.xml_saldo = CRED
> myresponse = myport.Saldo(myrequest)
>
>
> Ottengo però un "Evento imprevisto, impossibile autenticare" per cui vorrei
> abilitare il debug come ho mostrato prima che avrei fatto con SOAPpy.
>
> Qualche suggerimento?
Dal manuale...
During development, it is often useful to record "packet traces" of the
SOAP messages being exchanged. Both the
Binding and ServiceProxy classes provide a tracefile parameter to
specify an output stream (such as a file)
to capture messages.
It can be particularly useful when debugging unexpected SOAP faults.
Nel tuo caso il locator restituisce un Binding e nel codice del
locator che devi aggiungere,
ci pass il parametro del tracefile.
mybind = Binding(url=serverPath, nsdict={'ns1':myns},
host='www.pascalbotte.be', port=80,
tracefile=sys.stdout)
Ciao,
Giorgio.
---
Giorgio Zoppi giorgio.zoppi a gmail.com
Maggiori informazioni sulla lista
Python