1.获取请求头中的cookie
url = 'http://xxx.xxx.xxx.xx:xxxx/xxxx/login'
body = {"username": "xxxxx", "password": "xxxx"}
# 1.获取请求头中的cookie
def get_cookie():
# 创建session对象,使用session发送post请求来获取cookie的值
session = requests.Session()
session.post(url, data=body)
request_cookies = session.cookies.get_dict()
# print(request_cookies) #可以打印出来看下有没有获取到
return request_cookies
2. 获取响应头中的cookie
def get_cookie(): #获取cookie
response_headers = requests.get(url).headers #获取响应头信息
print("response_headers:", response_headers) #打印响应头部信息确认下响应头中是否有Cookie这个参数
response_cookies = requests.get(url).headers["cookie"] #如果响应头中没有cookie这个参数,那么会报KeyError:cookie错误
print("response_cookies:", response_cookies) #打印出来看下响应头中的cookie值是什么
return response_cookies
3. 使用
例如我的登录接口需要在请求头中带上cookie,那么可以这样用:
# 3.登录
def login():
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "keep-alive"
}
body = {'username': 'xxxxx', 'password': 'xxxxx'}
reps = requests.post(url, data=body, headers=headers, cookies=get_cookie(), allow_redirects=False) # 有的项目中登录接口会重定向,设置 allow_redirects=False 使得禁止重定向,是为了获取重定向跳转的请求url;
print("reps:", reps) #此时的返回是302
url_login = reps.headers["Location"] # 通过reps.headers[‘Location’]拿到重定向的URL
print("重定向后的url_login:", url_login)
res = requests.get(url_login, headers=headers, cookies=get_cookie()) # 进行get请求的提交登录
print("status_code:", res.status_code)
#检查登录方法是否有效
login()
网友评论