1. 程式人生 > 其它 >獲取cookie時返回RequestsCookieJar的解決方法

獲取cookie時返回RequestsCookieJar的解決方法

最近在呼叫第三方登入介面,需要獲取介面的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,輸入結果如下: