【发布时间】:2015-09-22 18:06:06
【问题描述】:
尝试运行我的程序时出现此错误:
Traceback (most recent call last):
File "C:/Users/Adasli199/Desktop/Minetek-Testy-Stuff/tools/soldering-iron.py", line 400, in <module>
MCVersionRegEx = cacheMCVersions()
File "C:/Users/Adasli199/Desktop/Minetek-Testy-Stuff/tools/soldering-iron.py", line 141, in cacheMCVersions
feeddata = opener.open(request).read()
File "C:\Python27\lib\urllib2.py", line 404, in open
response = self._open(req, data)
File "C:\Python27\lib\urllib2.py", line 422, in _open
'_open', req)
File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "C:\Python27\lib\urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:510: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error>
我正在尝试获取一些数据数据以帮助在代码的另一部分处理我的 RegEx 命令,这是它引用的引发错误的函数。
import httplib
import urllib2
def cacheMCVersions():
request = urllib2.Request('https://mcversions.net/')
request.add_header('User-Agent', 'SolderingIron/1.0 +http://tetrarch.co/') # identify ourselves so we don't get blocked
opener = urllib2.build_opener()
feeddata = opener.open(request).read()
在此之后还有一些正则表达式代码来解释数据,但我觉得这就是解决问题所需的全部内容。在运行时,https://mcversions.net/ 已启动,据我所知仍然存在,这使得该错误更加奇怪。
【问题讨论】:
-
服务器仅支持 TLS 1/1.1/1.2 并且在连接 Python 3.4 时有效,所以我认为问题在于 Python 2.7 中支持的 SSL/TLS 版本
-
您使用的是哪个 Python 版本? 2.7.9?
-
不,我使用的是 Python 2.7.10
-
我无法在 2.7.10 中重现您的错误(从 python.org 下载),但在 2.7.9 中我遇到了同样的错误。你确定你使用 2.7.10 吗? ssl.SSLContext 存在吗?
标签: python python-2.7 urllib2 httplib