解决 requests 库中 verify 属性问题的方法

news2024/11/21 0:24:26

在使用 Python 的 requests 库进行网络请求时,我们常常需要确保通信的安全性,这涉及到验证服务器的 SSL/TLS 证书。

这个问题的背后是 requests 库的设计,为了解决这个问题,我们可以考虑修改 requests 库的源代码,以确保 `verify` 参数的优先级高于 `REQUESTS_CA_BUNDLE` 环境变量。

解决这个问题的方法是修改 requests 库的源代码。

以下是具体的步骤:

1. 找到 Python 安装目录下的 requests 库源代码文件,通常位于 `Lib/site-packages/requests` 目录中。

2. 打开 `sessions.py` 文件,这是 requests 库的一个关键文件。

3. 在 `sessions.py` 文件中找到 `Session` 类的 `request` 方法,这个方法用于发送 HTTP 请求。

4. 在 `request` 方法中找到如下代码块:

   ```python
   if not verify and self.verify:
       verify = self.verify
   ```

   这段代码用于检查 `verify` 参数是否为空,如果为空且 `self.verify` 不为空,就将 `self.verify` 的值赋给 `verify`。

5. 在上述代码块之后,添加以下代码,将 `REQUESTS_CA_BUNDLE` 环境变量的检查加入其中:

   ```python
   if not verify:
       verify = os.environ.get('REQUESTS_CA_BUNDLE')
   ```

   这段代码会检查是否存在 `REQUESTS_CA_BUNDLE` 环境变量,如果存在且 `verify` 为空,就将其值赋给 `verify`。

6. 最后,确保 `verify` 参数被正确传递给底层 HTTP 请求库(通常是 urllib3)。

通过以上步骤,我们成功地修改了 requests 库的源代码,确保 `verify` 参数的优先级高于 `REQUESTS_CA_BUNDLE` 环境变量,从而解决了这个问题。

此外,为了避免由于 CA 证书问题导致的错误,我们还可以使用 `requests.packages.urllib3.disable_warnings()` 来忽略 urllib3 库中的警告信息。
总的来说,解决这个问题需要对 requests 库的源代码有一定的理解,并且需要谨慎地根据实际情况进行适当的修改。在修改前,请务必备份原来的代码,以防出现问题。

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

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

相关文章

模具制造厂ERP都有哪些牌子?模具制造厂ERP有什么用

模具制造通常会涉及物料领用、成品入库、工艺流转、投入水口、配方、模具、生产啤数统计等众多环节,各个环节数据的实时和准确传递,有利于企业清晰掌握订单生产进度,及时调整制造策略等。 有些模具制造工厂采用传统的管理模式,随…

【Docker】从零开始:2.Docker三要素

【Docker】从零开始:2.Docker三要素 DockerDocker支持的系统CentOS DockerDocker三要素Docker镜像(Image):Docker容器(Container):1.从面向对象角度2.从镜像容器角度 Docker仓库(Repository) 总结 Docker docker官网:http://www.docker.com 仓库-Docker…

TikTok与人工智能:数字时代的智能互动

随着数字时代的快速发展,社交媒体平台不仅仅是连接人们的桥梁,更成为了创新科技的试验场。其中,TikTok作为一款风靡全球的短视频应用,在其背后融入了强大的人工智能技术。 本文将深入探讨TikTok是如何与人工智能互动,…

golang 断点调试

1.碰见如下报错,调试器没有打印变量信息 Delve is too old for Go version 1.21.2 (maximum supported version 1.19) 2. 解决办法 升级delve delve是go语言的debug工具。 go install github.com/go-delve/delve/cmd/dlvlatest报错 Get “https://proxy.golang.org/github…

浙大恩特客户资源管理系统fileupload.jsp,machord_doc.jsp接口任意文件上传漏洞复现 [附POC]

文章目录 浙大恩特客户资源管理系统fileupload.jsp,machord_doc.jsp接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 浙大恩特客户资源管理系统fileupload.jsp,machord_doc.jsp接…

《向量数据库指南》——Range Search 使用方法和参数检查

Range Search 使用方法 如需使用 Range Search,只需要修改搜索请求中的搜索参数。接下来我会讲一下的详细使用指南,在指南的最后还提供了 Python 示例代码。 开始前 请确保已安装并运行 Milvus Cloud。请确保已创建 1 个 Collection,并为该 Collection 创建索引。 Ra…

CentOS 8最小安装,VM使用这个内存占用小很多

文章目录 一、安装包下载作者使用的安装包 二、安装过程截图三、最小化安装拥有的外部命令四、查看ip(方便ssh连接)五、yum源有问题参考文档 一、安装包下载 CentOS 网站: https://www.centos.org/CentOS 维基: https://wiki.cen…

【教3妹学编程-算法题】区分黑球与白球

2哥 : 3妹,有没有看到AI圈爆炸新闻:突发,OpenAI政变再反转!阿尔特曼逼宫失败,董事会又换了新CEO 3妹:啊?他不是前两天刚被裁员嘛? 2哥 : 是啊, 简直堪比宫斗剧了&#xf…

ppt录屏制作微课,轻松打造精品课程

微课作为一种新型的教学方式逐渐受到广大师生的欢迎。微课具有方便快捷、内容丰富、互动性强等特点,可以有效地帮助教师传达知识,提高学生的学习效果。其中,ppt录屏制作微课就是一种常见的方式。本文将介绍ppt录屏的使用方法,帮助…

什么是加工制造业ERP系统?加工制造业ERP软件有哪些作用

化工、电子、五金、来料加工等不同性质的加工企业有差异化的业务特点,传统的管理模式难以解决多仓库、多工厂、多门店、多渠道信息统一和实时共享等问题。 另外如何实时掌握车间产能、科学制定生产计划、多门店数据统一和实时同步等问题,是很多加工制造…

STM32开发(三十一)STM32F103 片内资源 —— 模拟/数字转换 DAC 正弦波 编程详解

文章目录 一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解五、结果演示一、基础知识点 本实验是使用STM32内部的DAC模块实现按键控制周期的正弦波输出。通过这个实验 了解DAC的功能以及其库函数的调用使用。 本章知识点: STM32开发(十三)STM32F103 …

数据预处理pandas pd.json_normalize占用内存过大优化

问题描述 从ES下载数据,数据格式为json,然后由pandas进行解析,json中的嵌套字段会进行展开作为列名(由于维度初期无法预测,所以根据数据有啥列就使用啥列,这是最方便的点),变成表格,方面了后续…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《氢耦合区域综合能源系统集群双层博弈随机优化调度策略》

这个标题涉及到复杂的领域,主要包括氢能源、能源系统集群、双层博弈、随机优化和调度策略。我将分步解读这个标题: 氢耦合区域综合能源系统集群: 氢能源: 这指的是使用氢作为能源的系统,可能是指氢燃料电池等。区域综合…

【LeetCode:2216. 美化数组的最少删除数 | 贪心】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

RESTful API 设计指南——为什么要用(上)

引言 在上一篇中:RESTful API 设计指南——开篇词 我们介绍了几个十分有争议的案例: 所有的接口都使用Post请求不管成功还是失败,HTTP状态码都返回200API命名千奇百怪 本章我们来深入分析一下,为什么不要像案例中所说的那样干…

计算机基础知识54

ORM的介绍 # ORM是什么? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle…

TensorFlow实战教程(二十六)-什么是生成对抗网络GAN?基础原理和代码普及

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了Keras实现经典的深度学习文本分类算法,包括LSTM、BiLSTM、BiLSTM+Attention和CNN、TextCNN。这篇文章将详细介绍生成对抗网络GAN的基础知识,包括什么是GAN、常用算法(CGAN、DCGAN、…

【Unity细节】如何调节标签图标的大小(select icon)—标签图标太大遮住了物体

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

Qt 基于海康相机的视频绘图

需求 在视频窗口上进行绘图,包括圆,矩形,扇形等 效果: 思路: 自己取图然后转成QImage ,再向QWidget 进行渲染,根据以往的经验,无法达到很高的帧率。因此决定使用相机SDK自带的渲染…