在Django 1.3中读取原始HTTP请求
我想在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
来代替。你可以查看这个链接了解更多信息。