我正在使用httplib与远程服务器通信。
当我尝试连接时,我的OS发行版非常老,带有旧的OpenSSL版本(0.9.8),我得到:
[Errno 104] Connection reset by peer
我认为发生这种情况是因为远程服务器禁用了TLSv1。
这是代码:
import ssl
import httplib
conn = httplib.HTTPSConnection("<host>", context=ssl._create_unverified_context())
conn.request("POST", "/api/authentication/v2/simulator/signup")
在ssl
模块中查看受支持的TLS版本时:
'PROTOCOL_SSLv23',
'PROTOCOL_SSLv3',
'PROTOCOL_TLS',
'PROTOCOL_TLSv1',
我无法理解的是,使用相同的python版本,使用requests
模块,连接正常。
Out[1]: import requests
Out[2]: requests.post("https://<host>", verify=False)
Out[3]: <Response [200]>
它如何与requests
一起使用而不与httplib
一起使用?