【问题标题】:Extracting Cookie from SOAP Response in SUDS从 SUDS 中的 SOAP 响应中提取 Cookie
【发布时间】:2014-02-05 20:16:23
【问题描述】:

我必须使用具有多种服务的 API。所有这些都需要来自以下身份验证的 JSESSION cookie。但是,当我调用下一个服务时,它不会保留 cookie,因此会拒绝它们。

from suds.client import Client
url = 'http://example/ws/Authenticate?wsdl'
client = Client(url)
result = client.service.connect(username='admin', password='admin')
print client.options.transport.cookiejar

>>> <cookielib.CookieJar[<Cookie JSESSIONID=XXXXXXXXXX for localhost.local/Service/>]>

我相信让它保留这个 cookie 的方法是提取它,然后将其作为自定义标头提供,格式为:-

url = 'http://example/ws/dostuffnowloggedin?wsdl' 
client2 = Client(url, headers= { 'Cookie': 'JSESSIONID=value'})

但我不知道该怎么做。我已经查看了 SUDS 文档、URL2LIB 和 Cookiejar python 文档,查看了堆栈并在 Reddit 上提问。这是我在 Stack 上提出的第一个问题,我试图让它变得有意义和具体,但如果我犯了一个虚假的标准,请告诉我,我会尽力纠正它。

【问题讨论】:

    标签: python api soap suds


    【解决方案1】:

    试试这个。

    from suds.client import Client
    url = 'http://example/ws/Authenticate?wsdl'
    client = Client(url)
    result = client.service.connect(username='admin', password='admin')
    url2='url of second service'
    client2=Client(url2)
    client2.options.transport.cookiejar=client.options.transport.cookiejar
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多