Tôi đang cố gắng xác minh mục tiêu đó sẽ hiển thị một dịch vụ web https. Tôi có mã để kết nối qua HTTP nhưng tôi không chắc chắn cách kết nối qua HTTPS. Tôi đã đọc bạn sử dụng SSL nhưng tôi cũng đã đọc rằng nó không hỗ trợ lỗi chứng chỉ. Mã tôi nhận được là từ tài liệu trăn:Kết nối HTTPS Python
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
Có ai biết cách kết nối với HTTPS không?
Tôi đã thử HTTPSConenction nhưng nó phản hồi bằng mã lỗi tuyên bố httplib không có thuộc tính HTTPSConnection. Tôi cũng không có socket.ssl.
Tôi đã cài đặt Python 2.6.4 và tôi không nghĩ rằng nó có hỗ trợ SSL được biên dịch vào đó. Có cách nào để tích hợp này suppot vào python mới hơn mà không cần phải cài đặt nó một lần nữa.
Tôi đã cài đặt OpenSSL và pyOpenSsl và tôi đã thử đoạn code dưới đây từ một trong những câu trả lời:
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
Tôi đã có một lỗi:
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'
Có ai biết làm thế nào để có được điều này đang làm việc?
-- UPDATE
Tôi đã phát hiện ra vấn đề là gì, phiên bản Python tôi đang sử dụng không hỗ trợ SSL. Tôi đã tìm thấy giải pháp này hiện tại: http://www.webtop.com.au/compiling-python-with-ssl-support.
Mã bây giờ sẽ hoạt động sau giải pháp này rất tốt. Khi tôi nhập ssl và HTTPSConnection, tôi biết không gặp lỗi.
Cảm ơn bạn đã trợ giúp tất cả.
Lưu ý rằng điều này không xác minh chứng chỉ từ xa, do đó bạn không thực sự nhận được bảo mật theo cách này (vì bạn thực sự không biết bạn đang thực sự nói đến máy chủ nào). – Bruno
Liên kết đã chết. – SwiftsNamesake