requests库-忽略不安全的网站并且忽略警告

  1. 前景

公司内部部署了一个没有ssl安全证书的网站,现象就是提示不安全,如下所示。
image.png
这个时候我们使用requests直接请求的话,就会出现Max retries exceeded with url的问题。

  1. 解决Max retries exceeded with url问题

首先加上常用的解决方法,但在这个问题下并不是一个好的解决方法,需要用下面的方法彻底解决。。

s = requests.session()
s.keep_alive = False # 关闭多余连接

在请求的时候加上verify=False即可忽略不安全的网站。

r = self.s.post(url,
                data=json.dumps(req_body),
                headers=headers,
                verify=False)

但这时候请求又会出现下面的问题

D:\Anaconda_soft\envs\pytorch\lib\site-packages\urllib3\connectionpool.py:1043: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.dytt89.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(
  1. 解决InsecureRequestWarning: Unverified HTTPS request is being made to host问题

这个问题在https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#tls-warnings官方的文档中给出了解释,并且也给出了解决方法。

import urllib3
urllib3.disable_warnings()

文档翻译:
:::info
urllib3将根据证书验证支持的级别发出几个不同的警告。这些警告指示特定情况,可以通过不同方式解决。
不安全请求警告
当在未启用证书验证的情况下向HTTPS URL发出请求时,会发生这种情况。请按照证书验证指南解决此警告。
不安全平台警告
这种情况发生在具有过时ssl模块的Python 2平台上。这些较旧的ssl模块可能会导致一些不安全的请求在应该失败的地方成功,而安全请求在应该成功的地方失败。请按照pyOpenSSL指南解决此警告。
SNI缺失警告
这种情况发生在2.7.9之前的Python 2版本上。这些旧版本缺乏SNI支持。这可能导致服务器提供客户端认为无效的证书。请按照pyOpenSSL指南解决此警告。

强烈不鼓励发出未经验证的HTTPS请求,但是,如果您了解风险并希望禁用这些警告,可以使用disable_warnings()
import urllib3
urllib3.disable_warnings()
或者,您可以使用标准日志记录模块捕获警告:
logging.captureWarnings(True)
最后,通过设置PYTHONWARNINGS环境变量或使用-W标志,可以在解释器级别抑制警告。
:::

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值