そのターゲットが https Web サービスを公開していることを確認しようとしています。HTTP 経由で接続するコードはありますが、HTTPS 経由で接続する方法がわかりません。SSL を使用していることを読みましたが、証明書エラーをサポートしていないことも読みました。私が得たコードは、python docs からのものです:
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
HTTPS に接続する方法を知っている人はいますか?
すでに HTTPSConenction を試しましたが、httplib に属性 HTTPSConnection がないことを示すエラー コードが返されます。また、socket.ssl も利用できません。
Python 2.6.4 をインストールしましたが、SSL サポートがコンパイルされていないと思います。このサポートを再インストールせずに新しい python に統合する方法はありますか。
OpenSSL と pyOpenSsl をインストールし、回答の 1 つから以下のコードを試しました。
import urllib2
from OpenSSL import SSL
try:
response = urllib2.urlopen('https://example.com')
print 'response headers: "%s"' % response.info()
except IOError, e:
if hasattr(e, 'code'): # HTTPError
print 'http error code: ', e.code
elif hasattr(e, 'reason'): # URLError
print "can't connect, reason: ", e.reason
else:
raise
エラーが発生しました:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 87, in urlopen
return opener.open(url)
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 203, in open
return self.open_unknown(fullurl, data)
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 215, in open_unknown
raise IOError, ('url error', 'unknown url type', type)
IOError: [Errno url error] unknown url type: 'https'
これを機能させる方法を知っている人はいますか?
-- UPDATE
私が使用していた Python のバージョンは SSL をサポートしていませんでした。現在、このソリューションをhttp://www.webtop.com.au/compiling-python-with-ssl-supportで見つけました。
このソリューションの後、コードが機能するようになりました。これは非常に優れています。ssl と HTTPSConnection をインポートすると、エラーが発生しないことがわかっています。
助けてくれてありがとう。