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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top