獲取cookie時返回RequestsCookieJar的解決方法
阿新 • • 發佈:2021-05-17
最近在呼叫第三方登入介面,需要獲取介面的set-cookie
用jmeter可以成功返回set-cookie以及location,在用python時卻遇到返回的heasers中沒有這兩個值,於是輸出response.cookie時返回:<RequestsCookieJar[]>
廢話不說,直接上程式碼如下:
import requests class GetToken(): """獲取token""" def __init__(self): self.url = 'http://192.168.11.xxx:8090/auth/login' self.data = { 'username': 'admin', 'password': 'admin' } self.timeout = 10.0 self.headers = { 'Connection': 'keep-alive', 'Content-Length': '29', 'Content-Type': 'application/x-www-form-urlencoded; charset = UTF - 8', 'User-Agent': 'Apache-HttpClient/4.5.12(Java / 1.8.0_91)' } def loginAdmin(self): """登入admin獲取cookie""" session = requests.session() session.post(self.url, json=self.data, headers=self.headers, timeout=float(self.timeout)) cook = session.cookies return cook if __name__ == '__main__': gettoken = GetToken() return_json = gettoken.loginAdmin() # print(return_json) print(requests.utils.dict_from_cookiejar(return_json)) print(requests.utils.dict_from_cookiejar(return_json)['JSESSIONID'])
最後拿到cookie,輸入結果如下: