Aggiunta di cookie ai post ZSI
-
02-07-2019 - |
Domanda
Ho aggiunto il supporto per i cookie a SOAPpy sovrascrivendo HTTPTransport. Ho bisogno di funzionalità oltre a quelle di SOAPpy, quindi stavo pensando di passare a ZSI, ma non riesco a capire come mettere i cookie sui post ZSI inviati al servizio. Senza questi cookie, il server penserà che sia una richiesta non autorizzata e fallirà.
Come posso aggiungere i cookie da un Python CookieJar alle richieste ZSI?
Soluzione
Se leggi la _Binding class nel client. py di ZSI puoi vedere che ha un cookie variabile, che è un'istanza di Cookie.SimpleCookie . Seguendo esempio ZSI e Esempio di cookie ecco come dovrebbe funzionare:
b = Binding(url='/cgi-bin/simple-test', tracefile=fp)
b.cookies['foo'] = 'bar'
Altri suggerimenti
Inoltre, la classe Binding consente anche di aggiungere qualsiasi intestazione. Quindi ho capito che posso solo aggiungere un " Cookie " intestazione per ogni cookie che devo aggiungere. Questo ha funzionato bene per il codice generato da wsdl2py, semplicemente aggiungendo i cookie subito dopo la creazione dell'associazione nella classe client SOAP. Aggiungere un parametro alla classe generata per includere i cookie come dizionario è facile e quindi possono essere facilmente ripetuti e aggiunti.