Requests报”requests.exceptions.SSLError: {ssl error message} “的原因以及解决办法

  • Post category:Python

Requests报”requests.exceptions.SSLError: {ssl error message} “的原因一般是由于在使用SSL连接时出现了问题,这可能是因为目标站点的SSL证书无效或存在问题,也可能是由于请求的头文件不正确。

解决方法如下:

  1. 升级Requests到最新版本。

  2. 使用verify=False禁用证书验证,这虽然会把你暴露在安全威胁之下,但是如果你只是需要测试或者在调试时使用,使用这种方法通常是可行的。

  3. 如果你要使用具有自签名证书的站点,你需要使用SSL证书

import requests 

url = "https://www.example.com"
response = requests.get(url, verify="my_cert_file.pem")

其中my_cert_file.pem是你的SSL证书文件。

  1. 尝试更改SOAP请求头并发送HELLO消息。
import requests 

url = "https://www.example.com"
headers = {'SOAPAction': "hello", 'Content-Type': 'application/soap+xml', 'charset':'UTF-8'}
data = '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><hello xmlns="http://tempuri.org/"/></s:Body></s:Envelope>'
response = requests.post(url, data=data, headers=headers, verify=False)

在这里,我们更改了请求头并发送了一个SOAP HELLO消息,同时禁用了证书验证。

总之,在使用Requests库的过程中,如果遇到SSLError错误,需要首先检查目标站点的SSL证书是否存在问题,确认请求的头文件是否正确配置,避免一些常见的SSL连接问题,通过这些方法,以提高开发效率和调试质量。