【发布时间】:2020-05-07 13:39:42
【问题描述】:
我正在使用 python 3.8。我正在尝试使用 Zeep 库来使用公司 SOAP 资源。 SOAP 服务很旧,不会很快更新。其中一个问题是服务在响应 cookie 中设置了“会话 ID”。它设置了现在已过时的 set-cookie2 标头。
from requests import Session
from zeep import Client, Settings
from zeep.cache import SqliteCache
from zeep.transports import Transport
my_session = Session()
my_settings = Settings(strict=False)
my_cache = SqliteCache()
my_url = 'https://lists.mycompany.com/lists/wsdl'
client = Client(
my_url,
transport=Transport(
session=my_session,
cache=my_cache
),
settings=my_settings
)
...
我可以在my_session 中看到 cookie 对象。这是一个RequestsCookieJar,我不知道如何设置 cookie 策略值。在 pycharm 调试器中,我可以看到 my_session.cookies 具有“受保护的属性”,其中之一是 _policy,它是 DefaultCookiePolicy 对象。我可以看到 hide_cookie2 是 False(默认值和我需要的),但 rfc2965 也是 False 并且需要设置为 True。
在RequestsCookieJar 类中,我看到了get_policy() 方法,但没有设置策略。我在某处缺少链接。如何为整个应用或每个请求设置 cookie 策略?
【问题讨论】:
标签: python-3.x cookies python-requests zeep