プロキシサーバー越しにPythonでThriftのTHttpClientを使用する
見事、Google App EngineのPythonでThriftを動作させることが出来ました。Google App Engine(Python)でThriftを動作させる
プロキシサーバー越しにアクセスして、計算結果を取得できるか試してみました。
THttpClientの修正
何も考えずに動かしたら、やっぱり動きませんでした。。。
THttpClientのソース(クライアントのC:\Python25\Lib\site-packages\thrift\transport\THttpClient.py)に
問題があるようです。
W3C HTML batch Validator in Python
こちらを参考に使用しているhttplibのプロキシ対応を行いました。
まずopen部分
def open(self):
if self.scheme == 'http':
#self.__http = httplib.HTTP(self.host, self.port)
self.__http = httplib.HTTP("proxy.server.com", 8080)
else:
self.__http = httplib.HTTPS(self.host, self.port)
こんな感じで、プロキシサーバーの名前とポート番号を指定します。
※とりあえず、動くか試したかったので、ハードコーティングしました。
次にflush部分
def flush(self):
if self.isOpen():
self.close()
self.open();
# Pull data out of buffer
data = self.__wbuf.getvalue()
self.__wbuf = StringIO()
# HTTP request
#self.__http.putrequest('POST', self.path)
self.__http.putrequest('POST', "http://" + self.host + self.path)
putrequestにurlを渡すように修正します。
これでプロキシ越しでgoogle app engineのthriftにアクセスできるようになりました。
- 関連記事
-
- Thriftでphpの雛形を生成するときのオプションについて
- Debian + Nginx 0.7.x + mod_wsgi + pythonでthriftを動かす
- プロキシサーバー越しにPythonでThriftのTHttpClientを使用する
- Google App Engine(Python)でThriftを動作させる
- ThriftのサーバーにTomcatを使用する
コメント