2011-10-28 13 views
5

Django 1.3で生のHTTPリクエストを読みたいと思っています。Django 1.3で生のHTTPリクエストを読む

それを行う簡単な方法はありますか?また、試してみました

clength = int(request.META.get("CONTENT_LENGTH")) 
data = request.read(1000) 
# data comes out empty 

は、私は成功せず、次の試してみました

for part in request: 
    pass 
    # never enters the loop 

POSTmultipart/related MIME情報を使用する場合に何とか私のraw_post_data属性が空であるので、私はこれをやっている理由は、コマンド。明らかにbug that's been there for a long timeです。

+2

'request'にはコンテンツがありません。要求された内容の詳細しかないので、名前をつけてください。内容は* response *と一緒に来ます。 –

+0

あなたは何をしていますか?これはアップロードされたファイルの内容を解析しようとしていますか? – jathanism

+0

@ jathanism:いいえ。私はMMSメッセージセンターから 'multipart/related' POSTを受け取りました。データがあるにもかかわらず、DJANGOは' request'オブジェクトを通してそれを公開しません。パケットを盗聴してデータがそこにあることを確認しました。 –

答えて

2

HttpRequest.raw_post_dataを試しましたか?バグが修正されるまで見てみるべきもののように見えます。 Djangoのバージョン< 1.4の場合 https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.raw_post_data

+0

何が問題なのか分からなかったのですが、それはいくつかの人にとっては良い情報かもしれないので、私はちょうど答えを残します。感謝! – xeor

+0

ありがとう!私はHttpRequest.raw_post_dataを調べました。フレームワークのいくつかの部分で 'nil'に設定されているのは、ヘッダーが' multipart/related'投稿であるということです。 –

2

、あなたはHttpRequest.bodyinsteadを使用して、HttpRequest.raw_post_data、およびバージョン> = 1.4のために使用することができます。

関連する問題