Según la documentación, request.META
es un "diccionario estándar de Python que contiene todos los encabezados HTTP disponibles". Si quieres conseguir todo los encabezados, simplemente puede recorrer el diccionario.
La parte de su código para hacer esto depende de sus requisitos exactos. Cualquier lugar al que tenga acceso request
debería hacerlo.
Actualizar
Necesito acceder a él en una clase de Middleware, pero cuando lo repito, obtengo muchos valores además de los encabezados HTTP.
De la documentación:
Con la excepción de CONTENT_LENGTH
y CONTENT_TYPE
, como se indicó anteriormente, los HTTP
encabezados de la solicitud se convierten en META
claves convirtiendo todos los caracteres a mayúsculas, reemplazando los guiones con guiones bajos y agregando un HTTP_
prefijo al nombre .
(Énfasis añadido)
Para obtener HTTP
solo los encabezados, simplemente filtre por claves con el prefijoHTTP_
.
Actualización 2
¿Podría mostrarme cómo podría construir un diccionario de encabezados filtrando todas las claves de la variable request.META que comienza con HTTP_ y elimina la parte principal de HTTP_?
Por supuesto. He aquí una forma de hacerlo.
import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))