python,mantain state used

时间:2017-10-10 20:50:51

标签: python rest api cookies get

在Python中,我想维护Cookie并使用Cookie想要第二次发送GET请求,以获取JSON数据。为什么使用Set-cookies。我是否需要维护状态或cookie

import requests
import pprint

url =  'https://shoapi.xxx.com/api/method/login'
headers = {'User-Agent': 'Mozilla/5.0'}
payload = {'usr':'@gmail.com','pwd':'mh'}
response = requests.request("POST", url,headers=headers,data=payload)
response_data_json = response.json()


print("")
print("")
print(type(response.text))
pprint.pprint(response.text)
print("")
print("")
print("-----------Header---------------")
pprint.pprint(response.headers)
headers=response.headers
print("-----------End of Header---------------------------")
print("")
print("")
print(type(response_data_json))

pprint.pprint(response_data_json)


print("---------------------------")    

1 个答案:

答案 0 :(得分:1)

如果您对POST使用requests.Session,并为后续GET请求重复使用相同的会话实例,则会话会被维护,并为您处理cookie。

mysession = requests.Session()
data = {'login': 'mylogin', 'pass': 'mypass'}
mysession.post(myurl, data=data)

mysession.get(myurl2)    #uses logged in session with cookies as set
mysession.get(myurl3)    #reuses session again

所以你需要保持状态,而不是使用Set-cookies,除非你真的想自己处理这些事情