1. 使用requests实现cookies鉴权的方式
'''
==================================
cooding:utf-8
@Time :2020/6/29 23:15
@Author :henry
@Email :yinpingwei@gmail.com
@File :requests实现cookies鉴权.py
@Software:PyCharm
===================================
'''
'''
Session类:创建一个会话对象,
发起一个请求话,
'''
import requests
sess = requests.Session()
print('登录之前的cookies:',sess.cookies)
my_url = 'https://www.ketangpai.com/UserApi/login'
my_data = {'email':'15112552411',
'password':'928321weiL',
'remember':'0'}
resp = sess.post(my_url,data=my_data)
print('登录响应的coolies:',resp.cookies)
print('登录之后的cookies:',sess.cookies)
use_url = 'https://www.ketangpai.com/UserApi/getUserInfo'
res = sess.get(use_url)
print(res.json())
my_url = 'https://www.ketangpai.com/UserApi/login'
my_data = {'email':'15112552411',
'password':'928321weiL',
'remember':'0'}
we = requests.post(my_url,data=my_data)
cookies = we.cookies
use_url = 'https://www.ketangpai.com/UserApi/getUserInfo'
res = requests.get(use_url,cookies=cookies)
print(res.json())
2. 使用requests实现token鉴权的方式
'''
==================================
cooding:utf-8
@Time :2020/6/29 23:53
@Author :henry
@Email :yinpingwei@gmail.com
@File :requests实现token鉴权.py
@Software:PyCharm
===================================
'''
import requests
headers = {'X-Lemonban-Media-Type':'lemonban.v2'}
url = 'http://api.lemonban.com/futureloan/member/login'
data = {"mobile_phone":"18723488722","pwd":"wertuyiop"}
res = requests.post(url,json=data,headers=headers)
print(res.json())
my_dict = res.json()
token = my_dict['data']['token_info']['token']
print(token)
member_id = my_dict['data']['id']
print(member_id)
headers['Authorization']='Bearer {}'.format(token)
print(headers)
recharge_url = 'http://api.lemonban.com/futureloan/member/recharge'
recharge_data = {"member_id":member_id,"amount":10}
rec = requests.post(recharge_url,json=recharge_data,headers=headers)
print(rec.json())
3. 基于定制化的接口封装
'''
==================================
cooding:utf-8
@Time :2020/6/29 21:13
@Author :henry
@Email :yinpingwei@gmail.com
@File :requests封装.py
@Software:PyCharm
===================================
'''
'''
基于项目做的接口定制化封装
需要考虑如下:
1.有什么样的鉴权:token
2.项目通用的请求头:{'X-Lemonban-Media-Type':'lemonban.v2'}
3.请求体格式:'Content-Type':'application/json'
'''
import requests
def __request_header(token=None):
'''
处理请求头,加上项目当中必带的请求头,如果有token,加上token
:param token: token值
:return: 处理之后的header字典
'''
headers = {'X-Lemonban-Media-Type':'lemonban.v2',
'Content-Type':'application/json'}
if token:
headers['Authorization'] = 'Bearer {}'.format(token)
return headers
def sennd_requests(method, url, data=None, token=None):
'''
:param method: 请求的方法GET或者POST
:param url: 请求的接口地址
:param data: 请求的数据,有就传,没有就不传
:param token: 如果有token,就加上token
:return: 返回处理之后值
'''
headers = __request_header(token)
method = method.upper()
if method == 'GET':
resp = requests.get(url, data, headers=headers)
else:
resp = requests.post(url, json=data, headers=headers)
return resp
if __name__ == '__main__':
my_url = 'http://api.lemonban.com/futureloan/member/login'
my_data = {"mobile_phone": "15112552466", "pwd": "Qwe11298o2"}
resp = sennd_requests('post',my_url,my_data)
print(resp.json())
token = resp.json()["data"]["token_info"]["token"]
member_id = resp.json()['data']['id']
recharge_url = 'http://api.lemonban.com/futureloan/member/recharge'
recharge_data = {"member_id": member_id, "amount": 100}
resp = sennd_requests('post', recharge_url, recharge_data,token)
print(resp.json())