2011-10-28 31 views
5

Quiero leer una solicitud HTTP sin procesar en Django 1.3.Lectura de una solicitud HTTP sin procesar en Django 1.3

¿Hay una manera fácil de hacerlo?

He intentado lo siguiente sin éxito:

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

También probamos:

for part in request: 
    pass 
    # never enters the loop 

La razón por la que estoy haciendo esto es porque de alguna manera mi atributo raw_post_data está vacía cuando se utiliza multipart/related información MIME en el POST mando. Al parecer es un bug that's been there for a long time.

+2

'request' no tiene ningún contenido. Simplemente tiene detalles sobre la solicitud que se realiza, de ahí el nombre. El contenido viene con la * respuesta *. –

+0

¿Qué estás haciendo exactamente? ¿Esto está tratando de analizar el contenido del archivo cargado? – jathanism

+0

@jathanism: no. Recibo una POST 'multipart/related' desde un Centro de mensajes MMS y, aunque los datos están allí, DJANGO no los expone a través del objeto' request'. Me aseguré de que los datos estuvieran allí olfateando los paquetes. –

Respuesta

2

¿Has probado HttpRequest.raw_post_data? Parece algo que deberías echarle un vistazo hasta que se solucione el error. https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.raw_post_data

+0

No me di cuenta de la pregunta de qué edad tenía ... Pero podría ser una buena información para algunas personas, así que simplemente dejaré la respuesta. – xeor

+0

gracias! Revisé HttpRequest.raw_post_data. Está configurado como 'nil' en alguna parte del framework porque su encabezado dice que es una publicación' multipart/related' ... –

2

Para la versión Django < 1.4, puede utilizar HttpRequest.raw_post_data, y para la versión> = 1.4, utilizando HttpRequest.bodyinstead.

Cuestiones relacionadas