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
())
转载请注明原文地址:https://ipadbbs.8miu.com/read-8766.html