Ubuntu 12.04 には、openssl に関する未解決のバグがあります。TLS 1.2 をサポートしていないホスト (Evernote など) に接続しようとすると、「プロトコル違反で EOF が発生しました」というメッセージが表示されます。https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371を参照してください
そのバグへのコメントには、TLS 1.1 が強制されている httplib.py の回避策があります。残念ながら、これは urlfetch に基づく独自のカスタム httplib を使用するため、GAE SDK では機能しません。
urlfetch に TLS 1.1 を強制的に使用させるにはどうすればよいですか? または、このバグを回避するにはどうすればよいですか? アプリを GAE にアップロードすると正常に動作するため、SDK のローカル修正のみが必要です。カスタム httplib.py を Python 2.7 のパッチを適用したストック httplib.py に置き換えようとしましたが、そのモジュールには ssl とソケットが必要であり、別の OS などが必要になるため、これはさらなる問題につながります。
編集: トレースバックの最後の部分:
File "evernote-sdk/lib/thrift/transport/THttpClient.py", line 122, in flush
self.code, self.message, self.headers = self.__http.getreply()
File "google_appengine/google/appengine/dist27/httplib.py", line 592, in getreply
response = self._conn.getresponse()
File "google_appengine/google/appengine/dist27/httplib.py", line 502, in getresponse
raise HTTPException(str(e))
HTTPException: ApplicationError: 6 [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
問題なのは、Ubuntu 12.04、Evernote のサーバー/SDK、および Google App Engine SDK の組み合わせです。