2014-02-05 26 views
3

我必須使用具有多個服務的API。所有這些都需要下面認證的JSESSION cookie。但是,當我調用下一個服務時,它不保存cookie並拒絕它們。從SUDS中的SOAP響應中提取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上提出的第一個問題,我試圖讓它變得有意義和具體,但是如果我已經提交了一個人造標籤,告訴我,我會盡我所能來糾正它。

回答

0

試試這個。

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