ローカルデータベースからリモートデータベースにいくつかの変更を同期するために、Python(Pythonである必要があります)を使用してスクリプトを書き始めました。3時間おきに運行しています。私が始めたとき、EOFエラーを与えるurllib2バグに遭遇しました。いろいろ調べてみたところ、すべてが稼働しているように見える次の修正が見つかりました。
class HTTPSConnection(HTTPConnection):
"This class allows communication via SSL."
default_port = HTTPS_PORT
def __init__(self, host, port=None, key_file=None, cert_file=None,
strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
HTTPConnection.__init__(self, host, port, strict, timeout)
self.key_file = key_file
self.cert_file = cert_file
def connect(self):
"Connect to a host on a given (SSL) port."
sock = socket.create_connection((self.host, self.port),
self.timeout)
if self._tunnel_host:
self.sock = sock
self._tunnel()
# this is the only line we modified from the httplib.py file
# we added the ssl_version variable
self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
#now we override the one in httplib
httplib.HTTPSConnection = HTTPSConnection
今日、これは同じエラーを再びスローし始めました。Python 2.6 を使用しています。ここで私が見逃している別の解決策や何かがありますか?