我已经通过覆盖HTTPTransport为SOAPpy添加了cookie支持。我需要的功能超出了SOAPpy的功能,所以我计划转移到ZSI,但我无法弄清楚如何将这些Cookies放在ZSI的职位上。没有这些cookie,服务器会认为这是一个未经授权的请求,并且会失败。将Cookie添加到ZSI的帖子
如何将Cookie CookieJar中的Cookie添加到ZSI请求中?
我已经通过覆盖HTTPTransport为SOAPpy添加了cookie支持。我需要的功能超出了SOAPpy的功能,所以我计划转移到ZSI,但我无法弄清楚如何将这些Cookies放在ZSI的职位上。没有这些cookie,服务器会认为这是一个未经授权的请求,并且会失败。将Cookie添加到ZSI的帖子
如何将Cookie CookieJar中的Cookie添加到ZSI请求中?
如果您阅读_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'
此外,Binding类还允许添加任何头。所以我发现我可以为每个需要添加的cookie添加一个“Cookie”标头。这适用于wsdl2py生成的代码,只需在SOAP客户端类中形成绑定后立即添加cookie即可。向生成的类中添加一个参数以将cookie作为字典容易获取,然后可以轻松地迭代并添加它们。