Question

J'ai ajouté la prise en charge des cookies à SOAPpy en remplaçant HTTPTransport. J'avais besoin de fonctionnalités autres que celles de SOAPpy, donc je prévoyais de passer à ZSI, mais je ne sais pas comment mettre les cookies sur les publications ZSI apportées au service. Sans ces cookies, le serveur pensera qu'il s'agit d'une demande non autorisée et cela échouera.

Comment puis-je ajouter des cookies d'un CookieJar Python aux requêtes ZSI?

Était-ce utile?

La solution

Si vous lisez la classe _Binding dans le client. py de ZSI vous pouvez voir qu’il contient une variable cookies, qui est une instance de Cookie.SimpleCookie . En suivant l’exemple ZSI et le Exemple de cookie : voici comment cela devrait fonctionner:

b = Binding(url='/cgi-bin/simple-test', tracefile=fp)
b.cookies['foo'] = 'bar'

Autres conseils

De plus, la classe Binding permet également d'ajouter n'importe quel en-tête. J'ai donc compris que je pouvais simplement ajouter un "cookie". en-tête pour chaque cookie à ajouter. Cela a bien fonctionné pour le code généré par wsdl2py, en ajoutant simplement les cookies juste après la formation de la liaison dans la classe client SOAP. Il est facile d’ajouter un paramètre à la classe générée afin d’enregistrer les cookies dans un dictionnaire. Ils peuvent ensuite être facilement itérés et ajoutés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top