md5加密密码,以及增加可选返回值能力(返回整个响应体json或仅token值)
import requests
import hashlib
import pprint
#需求:输入一个字符串的密码,输出一个md5加密结果
def get_md5(password):
#1-实例化加密对象
md5 = hashlib.md5()
#2-进行加密操作
md5.update(password.encode('utf-8'))
#3-返回机密后的16进制值
return md5.hexdigest()
#print(get_md5('111'))
HOST = 'http://121.41.14.39:8082'
def login(inData,getToken=False):
'''
:param inData:账号密码---字典
:return:
'''
#1-url
url = f'{HOST}/account/sLogin'
#2-参数
#字典的修改值操作 字典[键] = 新的值
inData['password'] = get_md5(inData['password'])
payload = inData
#3-请求方法
resp = requests.post(url, params=payload)
if getToken == False:
return resp.json()
else:
return resp.json()['data']['token']
if __name__ == '__main__': # ctrl+j
res = login({'username':'111','password':'111'})#不传getToken,保持默认
# pprint.pprint(res)
print(res)
cookie练习 http协议
#cookie:是服务器给客户端的--返回在响应头
#sessionID---存在服务器里
#cookies---存在客户端
#登录接口---基于cookie机制
#练习一:原生cookie及二次封装
import requests
def login(inData):
#1-url
url = 'http://localhost/api/mgr/loginReq'
payload = inData
resp = requests.post(url,data=payload)
print(resp.text)
#方案一:原生态cookie---如果后续的接口直接使用这个cookie,不增加其他参数---直接使用
print(resp.cookies)
#方案二:如果后续接口使用这个cookie,再增加其他参数认证,重新封装cookie
print(resp.cookies['sessionid'])
#print(resp.headers)
return resp.cookies,resp.cookies['sessionid']
#方案一:
#原生态cookie
cookie1 = login({'username':'111','password':'111'})[0]
#其他接口请求
resp = requests.post('路径',cookies = cookie1)
#方案二:
session = login({'username':'111','password':'111'})[1]
user_cookie = {'sessionid':session,'token':'123456'}#增加新参数二次封装cookie
#其他接口请求
resp = requests.post('路径',cookies = user_cookie)
https协议
#练习二:https协议
requests.packages.urllib3.disable_warnings()#忽略警告
def login(inData):
#1-url
url = 'https://localhost/api/mgr/loginReq'
payload = inData
resp = requests.post(url,data=payload,verify = False)#加上verify = False,才能访问https
print(resp.text)
login({'username':'111','password':'111'})