如何在Django中获取原始请求头?

6 投票
1 回答
2928 浏览
提问于 2025-04-16 11:44

我想知道在Django中怎么获取原始的请求头。我知道有一个HttpRequest.META字典,但这不是我想要的,我只是想要原始的请求头,想要以字符串的形式得到。有没有什么办法可以做到这一点?

1 个回答

2

据我所知,在现有的 Django 版本(标记为 <=1.2.5)中,无法直接从 request 对象获取原始的 HTTP 头信息。

不过,如果查看开发版本中的源代码(R15523),在 django.http.HttpRequests 这个类,它是请求对象的基础类,里面有一个类似文件的接口,这意味着我们可能可以用一些方法来获取原始的头信息,比如:

def dump_request_headers(request):
    dump = "".join(request.xreadlines())
    return HttpResponse("<pre>%s</pre>" % dump)

我自己从来没有尝试过这个,也没见过别人这么做,所以可能还有其他的细节需要注意。希望这能给你一些启发。

撰写回答