Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用请求的Python SSL版本错误_Python - Fatal编程技术网

使用请求的Python SSL版本错误

使用请求的Python SSL版本错误,python,Python,自从我在一台新电脑上安装python以来,我一直在努力解决这个问题。 基本上,我有https请求: import requests import ssl proxies = { 'https': "https://myproxyhere" } r = requests.get('https://example.com', proxies=proxies, timeout=10) print(r.text) 在另一台电脑上,它工作正常,但在这台电脑上,它

自从我在一台新电脑上安装python以来,我一直在努力解决这个问题。 基本上,我有
https
请求:

import requests
import ssl

proxies = {
    'https': "https://myproxyhere"
}

r = requests.get('https://example.com', proxies=proxies, timeout=10)     
print(r.text)
在另一台电脑上,它工作正常,但在这台电脑上,它会出现错误:

```(Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1122)')))```
我安装了
openssl1.1.1h
,并且
python3.9
had
openssl
version
1.1.1g
。但是,我将我的
openssl
降级为
1.1.1g
,错误仍然存在,我无法使用代理执行SSL请求

请记住,代理不是原因,因为我的另一台笔记本电脑上也有同样的代码,但我买了一台Windows Surface Pro,当我重新安装时,我无法实现这一点。到目前为止,我尝试了一切,从尝试其他版本的openssl和python

有人知道如何解决这个问题吗

完全错误回溯:

Traceback (most recent call last):
  File "C:\Users\gonca\Desktop\debug.py", line 9, in <module>
    r = requests.get('https://example.com', proxies=proxies, timeout=10)
  File "C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='example.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1122)')))
回溯(最近一次呼叫最后一次):
文件“C:\Users\gonca\Desktop\debug.py”,第9行,在
r=请求。获取('https://example.com,代理=代理,超时=10)
文件“C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site packages\requests\api.py”,第76行,在get中
返回请求('get',url,params=params,**kwargs)
文件“C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site packages\requests\api.py”,请求中的第61行
return session.request(method=method,url=url,**kwargs)
文件“C:\Users\gonca\AppData\Local\Programs\Python\Python39\lib\site packages\requests\sessions.py”,请求中的第542行
resp=自我发送(准备,**发送)
文件“C:\Users\gonca\AppData\Local\Programs\Python\39\lib\site packages\requests\sessions.py”,第655行,在send中
r=适配器.send(请求,**kwargs)
文件“C:\Users\gonca\AppData\Local\Programs\Python\39\lib\site packages\requests\adapters.py”,第514行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:HTTPSConnectionPool(host='example.com',port=443):url:/(由SSLError(SSLError(1,[SSL:error\u VERSION\u NUMBER]error VERSION NUMBER(\u SSL.c:1122)]引起)超过最大重试次数
编辑:
对于遇到此错误的人,解决方案是降低请求模块的级别,它被安装了错误。

请求-2.25.1中有一个错误。我必须降级到2.24.0

pip install requests==2.24.0 

这是协议版本问题,不是库版本问题。有时,这意味着一方根本没有使用SSL,而另一方则试图解析一些不是SSL握手的东西,就好像它是SSL握手一样。“使用代理”是一个重要的注意事项,如果您对此多说一些,这将非常有帮助。在参数
代理中传递的值是什么?如果您的客户端试图通过加密连接连接到代理服务器,而代理服务器需要未加密的连接,或者相反。。。嗯,这是我想从看开始的。@CharlesDuffy嘿,这部分不是问题,因为在我的另一台笔记本电脑上,我有openssl旧版本和python 3.85,它工作正常,没有错误版本的错误。只有在这台新计算机上,我重新安装了python和openssl。到目前为止,我尝试了一切,重新安装了python,其他python版本,安装了其他openssl,但没有成功。PS:这两台机器上的代码完全相同。如果这是一台Windows-y机器,我会担心其中一台会有类似于杀毒软件的东西试图对您的出站连接进行中间人攻击。此错误消息与软件版本无关。@Goncalo-您能再多说一点请求模块被“窃听”的情况吗?我想你的意思是请求代码中的一个bug导致了你的麻烦。您是否有任何关于该问题文档的参考资料?我这样问是因为我们有时通过代理使用请求来谈论HTTPS,所以我非常感谢您提供的任何信息,以防我们遇到类似的情况。