pytest--python的一种测试框架--request请求加入headers

news2024/11/24 18:28:39

一、request headers中的cookie和session机制的作用与区别

Cookie 和 Session 是两种在客户端和服务器之间保持状态的技术。HTTP 协议本身是无状态的,这意味着服务器无法从上一次的请求中保留任何信息到下一次请求。Cookie 和 Session 机制就是为了解决这个问题。

Cookie:

1、Cookie 是服务器发送到用户浏览器并保存在浏览器上的一块信息,后续请求浏览器会自动带上这个 Cookie 信息,通过这种方式可以实现保持用户的状态。
2、Cookie 数据始终在同源的 http 请求中携带(即使不需要),即使保存在浏览器也会过期,不过过期时间可以自定义。
3、Cookie 数据还有路径(path)的概念,可以限制 Cookie 只属于某个路径下。
4、Cookie 的大小有限制,一般不超过 4KB。

Session:

1、Session 是另一种记录客户状态的机制,不同的是 Session 是保存在服务器端的。用户浏览器访问服务器的时候,服务器把用户的信息以某种的形式记录在服务器上。这就可以提供跨请求的状态维护。
当浏览器请求服务器,如果需要记录业务信息(比如用户的登录状态),服务器会在响应头中写入一个 Session ID,浏览器在下次请求时会带上这个 Session ID,服务器通过这个 Session ID 就能找到这个用户的会话信息。
2、Session 的存储方式可以有多种,常见的有:内存、数据库、Redis 等。
3、Session 的存储容量基本上是没有限制的,取决于你的存储方式。

区别:

1、Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上。
2、Cookie 不是很安全,别人可以分析存放在本地的 Cookie 并进行 Cookie 欺骗,考虑到安全应当使用 Session。
3、Session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器性能,考虑到减轻服务器性能方面,应当使用 Cookie。
4、单个 Cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 Cookie。
5、可以考虑将登陆信息等重要信息存放为 Session,其他信息如果需要保持可以放在 Cookie 中。
6、Session 的实现依赖于 Cookie 机制,因为 Session ID 是保存在 Cookie 中的。如果浏览器禁用了 Cookie,那么 Session 也会失效(除非你将 Session ID 通过 URL 参数传递)。

二、request请求加入headers

import requests
url='https://movie.douban.com/j/search_subjects'
params={
    "type":"movie",
    "tag":"热门",#%E7%83%AD%E9%97%A8
    "page_limit":50,
    "page_start":0
}
r=requests.get(url=url,params=params)
print(r.status_code)
print(r.json())

在这里插入图片描述

这个时候发现报错:418,requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

这是因为:

这个接口并没有返回数据,由于json返回内容为空,故而报错。**418其实是对一个反爬程序的状态码的返回值。**也就是说在我们进行基础调用的时候,由于豆瓣无法识别我们的身份故而被反扒了。

怎么去解决呢?

解决方法是在请求中加入请求头。

三、在请求中加入请求头

import requests
url='https://movie.douban.com/j/search_subjects'
params={
    "type":"movie",
    "tag":"热门",#%E7%83%AD%E9%97%A8
    "page_limit":50,
    "page_start":0
}
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
}
r=requests.get(url=url,params=params,headers=headers)
print(r.status_code)
print(r.json())

在这里插入图片描述

可以看到接口返回正确,接口请求成功

我们知道,在做接口请求的时候如果发生异常状态码返回那么就需要去关注其失败的原因应该如何解决。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1557867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

240330-大模型资源-使用教程-部署方式-部分笔记

A. 大模型资源 Models - Hugging FaceHF-Mirror - Huggingface 镜像站模型库首页 魔搭社区 B. 使用教程 HuggingFace HuggingFace 10分钟快速入门(一),利用Transformers,Pipeline探索AI。_哔哩哔哩_bilibiliHuggingFace快速入…

遥感数字图像处理的学习笔记

相关链接: 遥感数字图像处理实验教程(韦玉春)--部分实验问题回答 目录 1.什么是图像,什么是数字图像? 2.什么是遥感数字图像?模拟图像(照片)与遥感数字图像有什么区别? 3.什么是遥感数字图像…

小小狠招:巧妙使用HANA数据库的jdbc driver

SAP旗下的HANA数据库,实际上是分为两个系列进行发布,一种是基于本地部署的称之为HANA Platform。另一种是面向Cloud平台的,称之为HANA Cloud。 在实际使用当用,因为两者基本上共用同一代码库,除个别地方略有差异以外&…

C++要学到什么程度才能找到实习?

在考虑 C 学习到何种程度可以找到实习时,以下是一些具体的方向和建议。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我…

HarmonyOS 应用开发之模型切换

本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型,您需要完成如下动作: 工程切换:新建一个Stage模型的应用工程。 配置文件切换:config.json切换为app.json5和module.json5。 组件切换:PageAbility/Serv…

如何计算KST指标,昂首资本一个公式计算

在上一篇文章中,Anzo Capital昂首资本和各位投资者一起了解了KST指标,今天我们继续分享如何计算KST指标。 首先投资者可以在时间范围9、12、18和24分析变化率值。 前三个值(时间帧9、12、18)用EMA 26平滑,最后一个值用EMA 39平滑。 然后&…

AndroidStudio出现类似 Could not create task ‘:app:ToolOperatorDemo.main()‘. 错误

先看我们的报错 翻译过来大概意思是:无法创建任务:app:ToolOperatorDemo.main()。 没有找到名称为“main”的源集。 解决方法&#xff1a; 在.idea文件夹下的gradle.xml文件中 <GradleProjectSettings>标签下添加<option name"delegatedBuild" value"f…

前端小白如何理解mvc mvp mvvm

架构、框架、设计模式是都是啥&#xff1f; 架构&#xff1a;抽象出来不同组织或者对象亦或是简单组件&#xff0c;根据需求和各个单元的功能&#xff0c;进行组合排列。 从而完成系统的运行或者是实现目标。 框架&#xff1a;使用什么样的规则&#xff0c;什么样的开发语言&…

政安晨:【Keras机器学习实践要点】(十)—— 自定义保存和序列化

目录 导言 涵盖的API Setup 状态保存自定义 构建和编译保存自定义 结论 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在…

2024年京东云主机租用价格_京东云服务器优惠价格表

2024年京东云服务器优惠价格表&#xff0c;轻量云主机优惠价格5.8元1个月、轻量云主机2C2G3M价格50元一年、196元三年&#xff0c;2C4G5M轻量云主机165元一年&#xff0c;4核8G5M云主机880元一年&#xff0c;游戏联机服务器4C16G配置26元1个月、4C32G价格65元1个月、8核32G费用…

速腾聚创上市后首份财报:冲击年销百万台,押注人形机器人

作者 |老缅 编辑 |德新 港股「激光雷达第一股」速腾聚创&#xff0c;交出了上市后的首份业绩报告。 3月27日&#xff0c;速腾聚创发布了2023年度财报。 报告期内&#xff0c;公司迎来高速的业务增长——2023年总收入达到人民币11.2亿元&#xff0c;同比增长达到111.2%。这主…

Artplayer视频JSON解析播放器源码|支持弹幕|json数据模式

全开源Artplayer播放器视频解析源码&#xff0c;支持两种返回模式&#xff1a;网页播放模式、json数据模式&#xff0c;json数据模式支持限制ip每分钟访问次数UA限制key密钥&#xff0c;也可理解为防盗链 &#xff0c;本播放器带弹幕库。 运行环境 推荐使用PHP8.0 redis扩展…

书生 浦语大模型全链路开源体系

通用大模型成为发展通用人工智能的重要途径 书生 浦语大模型的开源历程 书生 浦语 2.0体系&#xff0c;面向不同的使用需求&#xff0c;每个规格包含三个模型版本&#xff0c;&#xff08;7B、20B&#xff09;InternLM2-Base、InternLM2、InternLM2-Chat。 大模型是回归语言建…

前缀树/字典树Trie

目录 一、Trie的数据结构 二、代码示例 一、Trie的数据结构 Tire通常包括&#xff1a; 1.root节点(根节点)&#xff1a;插入、查找、删除、遍历等操作从root节点开始. 2.flag&#xff1a;结束标志true/false&#xff0c;用于表示当前节点是否为一个完整的字符串的结尾. 3.ke…

第几个幸运数字(蓝桥杯)

文章目录 第几个幸运数字题目描述答案&#xff1a;1905生成法C代码代码详细注释代码思路解释 第几个幸运数字 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 到x星球旅行的游客都被发给一个整数&#xff0c;作为…

软考高级架构师:信息安全保护等级

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

二十四种设计模式与六大设计原则(三):【装饰模式、迭代器模式、组合模式、观察者模式、责任链模式、访问者模式】的定义、举例说明、核心思想、适用场景和优缺点

接上次博客&#xff1a;二十四种设计模式与六大设计原则&#xff08;二&#xff09;&#xff1a;【门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式】的定义、举例说明、核心思想、适用场景和优缺点-CSDN博客 目录 装饰模式【Decorator Pattern】 定义…

Android MediaPlayer

MediaPlayer 类是媒体框架最重要的组成部分之一。此类的对象能够获取、解码以及播放音频和视频&#xff0c;而且只需极少量设置。它支持多种不同的媒体源&#xff0c;例如&#xff1a; • 本地资源 • 内部 URI&#xff0c;例如您可能从内容解析器那获取的 URI • 外部网址…

idea从零开发Android 安卓 (超详细)

首先把所有的要准备的说明一下 idea 2023.1 什么版本也都可以操作都是差不多的 gradle 8.7 什么版本也都可以操作都是差不多的 Android SDK 34KPI 下载地址&#xff1a; AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 …

智慧水利中数据可视化的关键作用

在当今这个数据驱动的时代&#xff0c;数据可视化已成为转化复杂数据集为易于理解的视觉格式的关键技术&#xff0c;它在智慧水利领域的应用尤为显著。智慧水利利用现代信息技术&#xff0c;整合水资源管理的各个方面&#xff0c;旨在提高水资源的使用效率和管理效能。数据可视…