我想找到一种正确的方法来通过提供其 url 来验证网站是否启用了 https
import httplib
conn = httplib.HTTPSConnection("www.python.org")
conn.request("GET", "/")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/")
r2 = conn.getresponse()
print r2.status, r2.reason
data2 = r2.read()
conn.close()
但是我遇到了以下错误
追溯(最近的调用最后): 文件“C:/Users/muhammad.faisal/Documents/NLP/Main.py”,第 54 行,位于 conn.request("GET", "/") 请求中的文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 1042 行 self._send_request(方法,网址,正文,标题) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 1082 行,在 _send_request self.endheaders( body ) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 1038 行,在 endheaders 中 self._send_output(message_body) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 882 行,在 _send_output self 发送(消息) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 844 行,发送 self 连接() 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 1255 行,在连接中 HTTPConnection.connect(self) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\httplib.py”,第 821 行,在连接中 self.timeout, self.source_address) 文件“C:\Users\muhammad.faisal\AppData\Local\Continuum\Anaconda2\lib\socket.py”,第 557 行,在 create_connection 中 对于 getaddrinfo(主机、端口、0、SOCK_STREAM)中的资源: socket.gaierror: [Errno 11002] getaddrinfo 失败
最佳答案
试图在我的系统上执行。它工作正常。
在[8]中:导入httplib
在[9]中:conn = httplib.HTTPSConnection("www.python.org")
在[10]中:conn.request("GET", "/")
在[11]中:r1 = conn.getresponse()
在[12]中:打印r1.status, r1.reason 200 好
在[13]中:data1 = r1.read()
在[14]中:conn.request("GET", "/")
在[15]中:r2 = conn.getresponse()
在[16]中:打印r2.status, r2.reason 200 好
在[17]中:data2 = r2.read()
在[18]中:conn.close()
您可能在 httplib 包中遇到问题。重新安装试试我的python版本是Python 2.7.6
关于python - 验证 python 2.7 (https) 中任何给定 URL 的 SSL 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072947/