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