栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

requests与cookie,session实现状态保持(代码)以及jwt扩展

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

requests与cookie,session实现状态保持(代码)以及jwt扩展

1,requests介绍与请求   1.1,requests模块介绍

        requests模块是python的第三方模块,用来发送网络网络请求,常用与爬虫,能够完全满足基于HTTP协议的接口测试

        requests模块的安装方法:

#安装

pip install requests

#验证

pip show requests

    1.2 requests模块发送请求

          (1)简单的发送get请求

# 导包

import requests

#请求方法:get
#请求地址:"https://www.baidu.com"
#响应数据
url = "https://www.baidu.com"
res = requests.get(url)
#编码
res.encoding = "utf-8"

print(res.text)
        一次完整的请求(附加)
1)请求方法
2)URL
3)params,headers,body
4)前置脚本,后置脚本
5)响应数据 + 断言结果




#1,请求方法:requests.请求方法()
#2,URL定义:URL是请求的地址,是一个字符串形式
#           做接口测试,URL应该是接口地址
#3,params是URL后面拼接的查询参数,params是以键值对形式出现的
#            比如: pms ={'wd':'value'}
#            传参:requests.get(url,params=pms)
#4,body:请求体,请求体,请求体一般用在post/put/patch等方法中
#        body数据一般都是键值对形式的字典
#5,响应数据的类型:
#        - res.text:响应数据的文本形式
#        - res.json():json数据格式转化为python基础数据类型
#        - res.content:获取相应数据的二进制流形式
        cookie状态保持
import requests

url = "https://www.baidu.com"
params = {
    "wd":"北京"
}
hds = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/90.0.4430.93 Safari/537.36'
    'cookie':''
}
res = requests.get(url=url,params=params,headers=hds)
res.encodeing = 'utf-8'
with open('test.html','w',encoding='utf-8') as f:
    f.write(res.text)
ret = requests.get(url=url,params=params,headers=hds)
        session实现状态保持
# 使用步骤
# 导包: from requests import Session
# 实例化session对象: session = Session()
# 请求是使用session对象, 不在使用requests: session.get()
# 注意事项: 要想一直保持状态, 中间不可间断, 要一直用session请求

from requests import Session
#实例化Session对象

session = Session()

url_login = 'http://www.2552.com.cn/e/member/doaction.php'

data = {
    'ecmsfrom': '',
    'enews': 'login',
    'tobind': '0',
    'username': 'Jeremy',
    'password': '123456',
    'lifetime': '0',
    'Submit': '登 录'

}

session.post(url=url_login, data=data)

url_mine = 'http://www.2552.com.cn/e/member/cp/'

res = session.get(url=url_mine)

with open('./mypage.html', 'w', encoding='utf8') as f:

    f.write(res.text)

jwt扩展

        jwt是什么,可以做什么,与cookie和session相比可以做什么

        它的组成:

            由header,payload,signature这三部分组成

        

         header:   

                header部分由以下的json结构生成:

                        

 

                typ用来标识整个token是一个jwt字符串,alg代表签名和摘要算法,一般签发JWT的时候,只要typ和alg就够了,生成方式是将header部分的json字符串经过base64Url编码:

                                        

 

        playload部分:

                

 

                playload用来承载要传递的数据,它的一个属性对被称为claim,这样的标准成为claims标准,同样是将其用base64Url编码

        signature

                signature部分是将前两个部分的json拼接中间加一点,再将这个拼接后的字符串用alg中的算法处理

                

 token的生成和解密

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304275.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号