2011-07-06 3 views
0

私のアプリ内でhttplib.HTTPConnectionを使用しています。 httplib.HTTPConnectionコンストラクタにhostパラメータを実際に提供する必要がありますか?もしそうなら、なぜですか? (私はそれが必須のパラメータだと知っていますが、私はNoneまたは空の文字列を指定することができますか?)そして、Google AppEngineと私のアプリ内で明示的に定義を省略するために使用できる開発サーバには、ホスト。httplib.HTTPConnection in Google App Engine

+0

。要求を行う必要があるときは、 'HTTPConnection.request()'メソッドを使用し、URLを明示的に指定して使用する必要があります。 – sam

+1

は – KevinDTimm

+0

に移動しましたなぜhttplibを使うのですか? App Engineで作業している場合は、urlfetchを使用することをおすすめします。また、httplibはその上にある薄いレイヤーです。 –

答えて

2

コンストラクタの外に置いておくと、他の方法でメッセージの送信先をどのように知ることができますか?

接続先のサーバーのアドレス/名前はHTTPConnectionのパラメータです。そのサーバー上のURIが要求になります。 (AppEngineのための基礎となっている)Pythonドキュメント

h1 = httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]]) 
h1.request(method, url[, body[, headers]]) 

[編集]

から

は、それは常にあなたがこのコードの責任者ではないかもしれないが、覚えておいてください。また、同じWebサイト上の多数のURIを呼び出しているときなど、URIにもっと多くの情報を含めることで、なぜ複雑になりますか?

[/編集]私の知る限り、私は私のアプリケーションは(私が間違っている場合は、私を修正してください)今、ホストされている現在のサーバーの(このパラメータの)ホスト名を指定する必要があります理解し

+0

単に 'host'(コンストラクタ内)と' url'(リクエストメソッド内)の違いを理解するのに役立ちます。 'ホスト'は単にホスト名(例えば 'foo.com')であり、' url'はURLパス(例えば '/ path/to/resource')であると私は理解していますか? – sam

+0

@asm - 正確には:) – KevinDTimm

+0

私を信じて、私はあなたを怒らせるようにはしません:)、私はこの質問を明確にしたいと思います。実際の 'host'ではなく' None'を指定し、 'host'には完全なURL(パスだけでなく)を使用すれば' httplib.HTTPConnection'が完璧に動作するので、リクエストのメソッドの 'url'パラメータです。今私は、少なくとも 'request'メソッドを使う文脈では、' host'パラメータにどの値を使うかは問題ではないと確信しています。 – sam