内容长度标头未从Pylons响应返回

时间:2010-05-06 01:30:31

标签: python http pylons content-length

我仍然在努力Stream a file to the HTTP response in Pylons。除了原始问题,我发现我无法返回Content-Length标头,因此对于大文件,客户端无法估计下载需要多长时间。我试过了

response.content_length = 12345

我试过

response.headers['Content-Length'] = 12345

在这两种情况下,HTTP响应(在Fiddler中查看)根本不包含Content-Length标头。如何让Pylons返回此标题?

(哦,如果你有任何关于让它流式传输文件的想法,请回复原始问题 - 我在那里完全没有想法。)

编辑,但不是通用解决方案,用于提供静态文件FileApp allows sending the Content-Length header。对于动态内容,似乎 Alex Martelli 的答案是唯一的选择。

2 个答案:

答案 0 :(得分:1)

有一些中间件代码here可确保所有响应在缺少时获得内容长度标头。你可以调整它,以便在响应中设置一些其他标题(比如'X-The-Content-Length'),如果后者缺少,中间件会使用它来制作内容长度。我认为整个事情是我认为是一个塔架虫(它对内容长度的傲慢态度!)的解决方法,但显然塔架作者在这个分数上不同意我的意见,所以至少有它的解决办法很好! - )< / p>

答案 1 :(得分:0)

尝试:

response.headerlist.append((str("Content-Length"), str(" 123456")))
相关问题