2011-10-28 24 views
5

Desidero leggere una richiesta HTTP non elaborata in Django 1.3.Leggere una richiesta HTTP non elaborata in Django 1.3

C'è un modo semplice per farlo?

ho provato la seguente senza successo:

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

cercato anche:

for part in request: 
    pass 
    # never enters the loop 

La ragione per cui sto facendo questo è perché in qualche modo la mia attributo raw_post_data è vuoto quando si utilizza multipart/related informazioni MIME sul POST comando. Apparentemente è un bug that's been there for a long time.

+2

'request' non ha alcun contenuto. Ha solo i dettagli sulla richiesta che viene fatta - da qui il nome. Il contenuto arriva con la * risposta *. –

+0

Che cosa stai facendo esattamente? Sta cercando di analizzare i contenuti dei file caricati? – jathanism

+0

@jathanism: no. Sto ricevendo un POST 'multipart/related' da un Centro Messaggi MMS e, anche se i dati ci sono, DJANGO non lo espone attraverso l'oggetto' request'. Mi sono assicurato che i dati ci fossero sniffando i pacchetti. –

risposta

2

Hai provato HttpRequest.raw_post_data? Sembra qualcosa che dovresti dare un'occhiata fino a quando il bug è stato corretto. https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.raw_post_data

+0

Non ho capito la domanda che cosa ... vecchio ... Ma potrebbe essere una buona notizia per alcune persone, quindi lascerò la risposta. – xeor

+0

grazie! Ho esaminato HttpRequest.raw_post_data. È impostato su 'nil' in qualche parte del framework a causa della sua intestazione che dice che è un post' multipart/related' ... –

2

per Django versione < 1.4, è possibile utilizzare HttpRequest.raw_post_data, e per la versione> = 1.4, utilizzando HttpRequest.bodyinstead.

Problemi correlati