我通过覆盖HTTPTransport为SOAPpy添加了cookie支持。我需要超出SOAPpy的功能,因此我计划转移到ZSI,但我无法弄清楚如何将Cookie放在为服务制作的ZSI帖子上。如果没有这些cookie,服务器会认为这是一个未经授权的请求,它将失败。
如何将Python CookieJar中的Cookie添加到ZSI请求中?
答案 0 :(得分:1)
如果您阅读_Binding class in client.py of ZSI,则可以看到它有一个变量Cookie,这是Cookie.SimpleCookie的一个实例。遵循ZSI example和Cookie example,它应该如何运作:
b = Binding(url='/cgi-bin/simple-test', tracefile=fp)
b.cookies['foo'] = 'bar'
答案 1 :(得分:0)
此外,Binding类还允许添加任何标头。所以我发现我可以为我需要添加的每个cookie添加一个“Cookie”标题。这适用于wsdl2py生成的代码,只是在SOAP客户端类中形成绑定后立即添加cookie。将一个参数添加到生成的类中以将cookie作为字典接收是很容易的,然后可以轻松地迭代并添加它们。