2012-01-19 4 views
0

を使用して、コンテンツの長さを決定します。私はそれを理解したよう「接続:閉じる」があるため、私は次のヘッダーに戻って来ているurllib2のを経由して、要求を作ってるんだurllib2の

>>> dict(response.info()) 
{'expires': 'Wed, 31 Dec 1969 19:00:00 EST, Wed, 31 Dec 1969 19:00:00 EST', 'server': 'Apache-Coyote/1.1, Apache-Coyote/1.1', 'connection': 'close', 'pragma': 'No-cache, No-cache', 'cache-control': 'no-cache, no-cache', 'date': 'Thu, 19 Jan 2012 20:16:00 GMT', 'content-type': 'audio/mpeg'} 

設定され、リクエストがしますリモートホストが終了するまでストリーミングを続けるので、Content-Lengthは設定されません。何とかレスポンスオブジェクトを分析してコンテンツの長さを判断できるはずですが、どうやってそれを行うのか分かりません。助言がありますか?

答えて

3

read()を返信して文字列に読み込んだ後、その文字列にlen()を呼び出す必要があると思います。

data = response.read() 
length = len(data) 
+0

私は要求全体(ヘッダーを含む)の長さがわかると思っていましたが、私はContent-Lengthがボディのみを含むと考えました。それは間違っていますか? – andyashton

+0

http://docs.python.org/library/httplib.html#httplib.HTTPResponse.readの文書によると、 'read()'は応答本体を読み込みます。 –

+0

うん、私はそれを試した。 'read()'はレスポンス本文を返すだけなので、Content-Lengthを見つけるために使うことができます。 –

関連する問題