IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> requests与cookie,session实现状态保持(代码)以及jwt扩展 -> 正文阅读

[网络协议]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的生成和解密

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:52:51  更:2021-10-11 17:53:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/29 7:57:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码