【接口自动化】第二章 cookie、token、session部分练习

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'})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值