unittest(16):接口自动化中requests请求处理cookies和token鉴权的方法

接口自动化中requests请求处理cookies和token鉴权的方法

一、requests请求处理cookies鉴权的方法

1、方式一:使用session对象登录成功后会自动携带cookies信息

import requests

#第一步 - 实现session的实例化
s = requests.Session()

#第二部 - 登录,得到cookies的鉴权
login_url = "https://v4.ketangpai.com/UserApi/login"
login_data = {"email": "1569179xxxx","password": "xxxxxx","remember": "0"}

s.post(login_url,data=login_data)
print("登录后的cookies是:",s.cookies) #主动会将响应的cookies添加到s对象当中

#第三部 - 使用携带cookies的s对象直接发送请求
get_user_url = "https://v4.ketangpai.com/UserApi/getUserInfo"
resp = s.get(get_user_url)
print(resp.json())

2、方式二:自己主动获取cookies,并在后续的请求中主动添加cookies信息

import requests

#第一部 - 登录,得到cookies的鉴权
login_url = "https://v4.ketangpai.com/UserApi/login"
login_data = {"email": "1520000000","password": "cw19880814","remember": "0"}

resp = requests.post(login_url,data=login_data)
cookies = resp.cookies #主动获取cookies鉴权
print("登录后的cookies是:",resp.cookies)

#第二部 - 发送请求并主动携带cookies信息
get_user_url = "https://v4.ketangpai.com/UserApi/getUserInfo"
resp2 = requests.get(get_user_url,cookies=cookies) #将获取到的cookies鉴权主动添加到请求中去
print(resp2.json())

二、requests请求处理token鉴权的方法

import requests

login_url = "http://api.lemonban.com/futureloan/member/login"
login_data = {"mobile_phone": "15200000000","pwd": "cw19880814"}
headers = {"X-Lemonban-Media-Type":"lemonban.v2"}

#第一部 - 登录,得到token的鉴权
#此处是项目接口要求,需要在登录请求的headers中传递特定信息来完成登录请求,不同项目会有不同,具体看接口文档
resp = requests.post(login_url,json=login_data,headers=headers)
resp_dict = resp.json()
#获取json中的token值
token = resp_dict["data"]["token_info"]["token"]
print(resp_dict)

#第二部 - 充值。将token添加到请求头中
#根据接口文档要求,在header 按照特定的格式将token添加到headers中,不同的项目会有不同,具体看接口文档
headers["Authorization"] = "Bearer {}".format(token)
print(headers)
recharge_url = "http://api.lemonban.com/futureloan/member/recharge"
recharge_data = {"member_id":"20201","amount":"20000"}
resp2 = resp.post(recharge_url,json=recharge_data,headers=headers)
print(resp2.json())

2、方式二:requesu.session操作token

import requests
r=requests.session()
url='http://49.235.92.12:6007/api/v1/login'
body={
"username": "admin",
"password": "yoyo1234"
}
s=r.post(url,json=body)
token=s.json()["token"]
print(token)
h={
"Authorization": "Token %s"%token
}
#更新header前的默认header
print(r.headers)
#更新header
r.headers.update(h)
#更细头部后的header,带上了token
print(r.headers)
posted @ 2021-09-24 13:43  Tester-**  阅读(520)  评论(0编辑  收藏  举报