在Django 1.3中读取原始HTTP请求

6 投票
2 回答
4021 浏览
提问于 2025-04-17 05:12

我想在Django 1.3中读取一个原始的HTTP请求。

有没有简单的方法可以做到这一点呢?

我尝试了以下方法,但没有成功:

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

还尝试了:

for part in request:
    pass
    # never enters the loop

我这么做的原因是,因为在使用multipart/related这种类型的MIME信息进行POST请求时,我的raw_post_data属性居然是空的。显然这是一个已经存在很久的bug

2 个回答

2

你有没有试过使用 HttpRequest.raw_post_data?看起来这是个你应该关注的内容,直到这个问题被修复为止。

3

对于Django版本低于1.4的情况,你可以使用 HttpRequest.raw_post_data。而对于1.4及以上的版本,应该使用 HttpRequest.body 来代替。你可以查看这个链接了解更多信息。

撰写回答