接口自动化处理 cookies,token,session

cookies 和session

因为http 是无链接,而cookies 可以用来保存登陆的状态,在web 端的浏览器中,但是不安全,为了安全,就把一些敏感信息保存在session中,而session是保存在服务器端,session 里面记录了客户的账号和密码。

代码实现拿到cookie 和session

#-------------cookies方式登录----------------
import requests
import json
HOST = *******'
#登录操作
def login(inData):
    #1- url
    url = f'{HOST}/api/mgr/loginReq'
    #2- body请求体
    paylaod = inData
    #3- 发请求
    resp = requests.post(url,data=paylaod)
    #cookie在响应头 set-cookies
    #print('响应头>>>',resp.headers)
    return resp.cookies#获取cookies对象
    #案例操作

#列出课程接口
def lesson_list(inCookies):
    #1- url
    url = f'{HOST}/api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20'
    #3- 发请求
    resp = requests.get(url,cookies=inCookies)
    #设置响应编码
    resp.encoding='unicode_escape'
    return resp.text


if __name__ == '__main__':
    cookie = login({'username':'auto','password':'sdfsdfsdf'})
    session=cookie['sessionid'] #获取自身项目的sessionid
    print(cookie)
    print(session)
    userCookies = {'sessionid':session,'token':'从第三方接口获取'}#二次封装cookies
    res = lesson_list(userCookies)
    print(res)


"""
操作任务:
    1- 获取登录的cookies
    2- 把cookies给后续接口使用

cookies在项目里使用场景:
    1- 后续接口使用原生态的cookie
    2- 后续接口会使用到登录的cookies(只有sessionid),但是这个cookies他是二次封装的
        cookies:session+token+uuid
        解决方案:
            1- 先通过登录的方式获取第三方接口的token
            2- 再使用本测试项目的登录去获取cookies
            3- 先从本项目的cookies提取session
            4- 二次封装 cookie=sessionid+token


"""

token

import requests
HOST = '******'

"""
定义方法:
    1- _get_data()  没有特殊意义
    1- __get_data()  私有的方法,只能在这个xxx.py文件里调用,避免其模块去调用他


"""
import hashlib
from config import loginData
import copy
def __get_md5_data(psw:str):
    """
    :param psw: 字符串的密码
    :return: 返回的加密后的结果
    """
    #实例化一个MD5对象
    md5 = hashlib.md5()
    #2- 调用加密方法
    md5.update(psw.encode('utf-8'))
    return md5.hexdigest()



def login(inData):
    #1-url
    url = f'{HOST}/account/sLogin'
    #2-请求体---账户密码的字典类型
    inData = copy.copy(inData)#浅拷贝
    inData['password'] = __get_md5_data(inData['password'])
    pyload = inData
    #3-发送请求
    resp = requests.post(url,data=pyload)

    #4- 返回响应数据
    return resp.json()

if __name__ == '__main__':
    print('loginData被使用前>>> ', loginData)
    res = login(loginData)
    print('loginData使用后>>> ',loginData)
    print(res)

"""
md5加密工具:
http://tool.chinaz.com/tools/md5.aspx

"""

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值