当前位置: 首页 > news >正文

python发送请求SSL验证设置

这个错误通常是由于SSL/TLS握手失败导致的,可能原因包括证书验证问题、不兼容的加密协议或网络连接中断。以下是几种解决方案,按推荐顺序排列:

方案一:临时禁用SSL验证(快速测试)

response = requests.get(url=url, headers=header, verify=False)

注意:生产环境不推荐长期禁用验证,存在安全风险

方案二:指定TLS版本(推荐)

response = requests.get(url=url,headers=header,ssl_version='TLSv1_2'  # 显式指定TLS 1.2版本
)

方案三:添加重试机制

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retrysession = requests.Session()
retry = Retry(total=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('https://', adapter)response = session.get(url=url, headers=header)

方案四:检查本地环境

  1. 更新证书库:运行pip install --upgrade certifi
  2. 检查系统时间:确保系统时间准确
  3. 防火墙排查:临时禁用防火墙/安全软件测试

方案五:完整改进代码

import os
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retryurl = 'https://www.hainan.gov.cn/.../files/eae7d9e018bf468794e87e690eef3a95.zip'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept": "*/*",
}# 创建带重试的Session
session = requests.Session()
retry = Retry(total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
adapter = HTTPAdapter(max_retries=retry)
session.mount("https://", adapter)try:# 添加超时参数response = session.get(url, headers=headers, timeout=10, verify=True)response.raise_for_status()# 确保目录存在os.makedirs('test_file', exist_ok=True)with open('test_file/test2.zip', 'wb') as f:f.write(response.content)except requests.exceptions.RequestException as e:print(f"请求失败: {type(e).__name__}: {e}")
except Exception as e:print(f"其他错误: {e}")

补充建议:

  1. 先在浏览器测试:手动访问该URL确认是否可下载
  2. 检查文件路径:确保test_file目录存在
  3. 尝试简单请求:先用curl或Postman测试基本连接性
  4. 更新依赖库pip install --upgrade requests urllib3

如果问题持续存在,可能是服务器端配置问题(如仅支持特定TLS版本),建议联系网站管理员确认支持的加密协议。


文章转载自:

http://hSv78JT1.dmkhd.cn
http://7r0C04td.dmkhd.cn
http://g0664fpv.dmkhd.cn
http://s7U1ktpn.dmkhd.cn
http://nYnGcpbc.dmkhd.cn
http://eUiLEdFx.dmkhd.cn
http://SNGGYEQC.dmkhd.cn
http://SXxvchpJ.dmkhd.cn
http://aVgt411a.dmkhd.cn
http://nzUci3Wu.dmkhd.cn
http://PKENU6nb.dmkhd.cn
http://lmfcdJGg.dmkhd.cn
http://w76dfB8q.dmkhd.cn
http://ZE6flQPG.dmkhd.cn
http://FuJ5fDNk.dmkhd.cn
http://3Gi8WxUg.dmkhd.cn
http://ftGcR6kW.dmkhd.cn
http://NqqoGY0R.dmkhd.cn
http://2tEdz2Q6.dmkhd.cn
http://7SuFsSbG.dmkhd.cn
http://hm4QkaRU.dmkhd.cn
http://HKrUetgk.dmkhd.cn
http://dfcSnOch.dmkhd.cn
http://bLgiNYHy.dmkhd.cn
http://ghZwYDN2.dmkhd.cn
http://JhjnFpWF.dmkhd.cn
http://40bnHCoX.dmkhd.cn
http://4OdSq1t1.dmkhd.cn
http://diKOFwmG.dmkhd.cn
http://3mZBWYEC.dmkhd.cn
http://www.dtcms.com/a/380926.html

相关文章:

  • 关于栈和队列的OJ练习
  • WebGIS包括哪些技术栈?怎么学习?
  • 15、优化算法工程实践 - 从数学理论到AI训练的核心引擎
  • VS2019 Community 社区版下载链接
  • 高低压隔离器的技术演进与行业赋能
  • 氚燃料增殖里程碑:MIT新型BABY包层技术实验验证
  • 【案例教程】基于R语言的物种气候生态位动态量化与分布特征模拟实践技术应用
  • 《WINDOWS 环境下32位汇编语言程序设计》第16章 WinSock接口和网络编程(1)
  • 实习总结——关于联调解决的因CRC校验导致协议交互失败的调试经验总结
  • 【从零开始的大模型原理与实践教程】--第三章:预训练语言模型
  • GitHub Copilot支持 GPT-5 和 GPT-5 mini!
  • Day01 Geant4学习
  • 11. 网络同步模型 - 状态同步A
  • Mem0 + Milvus:为人工智能构建持久化长时记忆
  • 力学矢量三角形“无脑”求解指南:基于极角代数的系统化方法
  • 算法第四题移动零(双指针或简便设计),链路聚合(两个交换机配置)以及常用命令
  • 背包问题从入门到入土
  • 远程连接--向日葵
  • 植物灯电源芯片选型指南:如何实现高效与智能?
  • Python读取视频-硬解和软解
  • FFmpeg vs 去水印软件:哪种方式更适合你?
  • Java垃圾回收机制理论算法及使用
  • 【Vue2 ✨】Vue2 入门之旅 · 进阶篇(六):keep-alive 与缓存机制
  • IDA pro 生成idapro.hexlic
  • 【CE】CE教程Tutorial:进阶篇(第8关:多级指针)(Pointer Scan工具)
  • Java 更改 Word 文档中文本颜色
  • Cesium 无人机航线规划(环点航线)
  • 一般软件加载显示图片的流程
  • 第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(3、寻找花坛)
  • Spring Boot中Filter与Interceptor的区别