运行python版本3.9.1在arch linux与OpenSSL版本1.1.1i和pyopenssl版本1.1.1i我得到以下错误时,尝试使用https代理与请求模块:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/urllib3/connectionpool.py", line 696, in urlopen
self._prepare_proxy(conn)
File "/usr/lib/python3.9/site-packages/urllib3/connectionpool.py", line 964, in _prepare_proxy
conn.connect()
File "/usr/lib/python3.9/site-packages/urllib3/connection.py", line 359, in connect
conn = self._connect_tls_proxy(hostname, conn)
File "/usr/lib/python3.9/site-packages/urllib3/connection.py", line 496, in _connect_tls_proxy
return ssl_wrap_socket(
File "/usr/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 424, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "/usr/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 466, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "/usr/lib/python3.9/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.9/ssl.py", line 1040, in _create
self.do_handshake()
File "/usr/lib/python3.9/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3.9/site-packages/urllib3/connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "/usr/lib/python3.9/site-packages/urllib3/util/retry.py", line 573, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='google.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.9/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3.9/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.9/site-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='google.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
我正在运行的代码是:
import requests
proxy = {
'https' : 'https://proxyip:proxyport'
}
requests.get("https://google.com", proxies=proxy)
无论我尝试什么https代理,我都会得到相同的错误。我还重新安装了openssl和python,没有任何更改。有什么建议吗?
它是固定与我的情况下,通过这个命令:
python3 -m pip install urllib3==1.22
... line 496, in _connect_tls_proxy
您的代码试图使用(新)支持通过HTTPS访问代理本身。之所以这样做,是因为您明确地将该URL作为代理指定为https://...
而非http://...
:
'https' : 'https://proxyip:proxyport'
^^^^^^
很可能代理本身不支持到代理的TLS连接。通常HTTP代理只有到代理的普通HTTP连接。他们仍然可以通过这种方式代理HTTPS流量,因为客户端只需向代理发出一个连接请求来创建一个隧道,然后在客户端和服务器之间使用端到端TLS。
通过HTTPS访问代理将在客户端和代理之间添加额外的TLS层,这是大多数代理不支持的。因此,您可能需要普通HTTP代理:
'https' : 'http://proxyip:proxyport'
^^^^^^
请注意,在旧版本的请求库中,使用http://
和https://
进行访问都有效。这些旧版本不支持HTTPS到代理,只使用普通HTTP,即使指定了HTTPS://
。
HTTP/1.1 408 REQUEST_TIMEOUT内容-长度:0连接:关闭 已关闭 --------------------------------------------------------------------------------------- 它会导致请求超时。如果我使用curl命令,它是成功的。 请求超时的原因是什么?
我使用下面的代码发出http请求,但当抛出异常时,我无法获取每个字段的错误消息。在postman中,它确实显示了正确的错误消息: 它只是显示消息“” 然而,在《邮递员》中,它显示:
问题内容: 我尝试了python 请求库文档中提供的示例。 使用,我得到了响应代码,但是我想获得所请求的每个页面的内容。例如,这不起作用: 问题答案: 注意 下面的答案是不适用于请求v0.13.0 +。编写此问题后,异步功能已移至。但是,你可以将其替换为下面的内容,它应该可以工作。 我已经留下了这个答案,以反映原始问题,即有关使用请求的问题。 要异步执行多个任务,你必须: 为每个对象定义一个函数(
问题内容: 在尝试为uWSGI中的请求设置超时时,我不确定设置是否正确。似乎有多个超时选项(套接字,接口等),并且不清楚要配置哪个设置或在哪里进行设置。 我正在寻找的行为是延长对REST应用程序的资源层的请求可以花费的时间。 问题答案: 您可能正在寻找 harakiri 参数- 如果请求花费的时间超过指定的harakiri时间(以秒为单位),则该请求将被删除,并且相应的工作程序将被回收。 对于独立
我在将curl请求转换为python代码请求时遇到了麻烦。 工作卷曲请求 卷曲-X柱“http://xxxxxx“-H”accept:application/json“-H”内容类型:application/x-www-form-urlencoded“-H”授权:令牌882a6ec053ff6dbac623eff400f67c0bb6ade399“-d”name=namename” 不工作pyth