2011-10-28 9 views
5

Django 1.3'te bir işlenmemiş HTTP isteğini okumak istiyorum.Django 1.3'te bir işlenmemiş HTTP isteği okuma

Bunu yapmanın kolay bir yolu var mı? Ayrıca çalıştı

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

:

Ben başarılı olamadı aşağıdaki çalıştı

for part in request: 
    pass 
    # never enters the loop 

POST üzerinde multipart/related MIME bilgilerini kullanırken nasılsa raw_post_data özellik boş çünkü bu yapıyorum nedeni komut. Görünüşe göre bir bug that's been there for a long time.

+2

'request' hiçbir içeriğe sahip. Sadece yapılan istek ile ilgili ayrıntılar var - bu yüzden isim. İçerik * yanıtı * ile birlikte gelir. –

+0

Tam olarak ne yapıyorsunuz? Bu, karşıya yüklenen dosya içeriğini ayrıştırmaya mı çalışıyor? – jathanism

+0

@jathanizm: hayır. MMS İleti Merkezi'nden "multipart/related" POST alıyorum ve veriler olmasına rağmen DJANGO bunu 'request' nesnesi aracılığıyla göstermiyor. Paketleri koklayarak veriler olduğundan emin oldum. –

cevap

2

HttpRequest.raw_post_data'yı denediniz mi? Hata düzeltilene kadar bakmanız gereken bir şeye benziyor. Django sürümü < 1.4 için https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.raw_post_data

+0

_that_ old'un ne olduğunu anlamadım ... Ama bazı insanlar için iyi bir bilgi olabilir, bu yüzden cevabı bırakacağım. – xeor

+0

teşekkürler! HttpRequest.raw_post_data'ya baktım. Çerçevenin bir kısmında, '' multipart/related '' yazısı olduğunu söyleyen başlıktan dolayı 'nil' olarak ayarlandı. –

2

, sen HttpRequest.bodyinstead kullanarak, HttpRequest.raw_post_data kullanın ve sürümü> = 1.4 için olabilir.