python – appengine,urlfetch和content-length标头

我有一个Google Appengine应用程序,使用urllib2 POST从另一台服务器请求页面.我最近在运行Apache2的其他服务器上启用了gzip压缩,并且Appengine页面请求在键错误时开始失败,表明’content-length’不在标题中.

我没有明确地声明gzip是我在Appengine的请求中接受的编码,但Appengine可能会添加该标头.谷歌搜索没有发现任何明确的迹象表明Appengine的urlfetch隐含地添加了一个标头来接受gzip编码.

Apache2,如果我没记错的话,在压缩响应时省略内容长度标题,但这不应该影响来自同一服务器的非压缩响应.

有没有人知道发生了什么,为什么省略内容长度标题?

解决方法:

根据这个帖子:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/5c5f2a7e2d2beadc?pli=1)
在Appengine Java新闻组中,Google通常会在urlfetch请求中设置’Accept-Encoding:gzip’标头,然后在将数据传递给脚本之前解压缩(ungzips)输入.

显然,Appengine在请求输出到Internet的过程中隐式添加了一个accept-encoding:gzip标头,并对响应进行解压缩,但是没有在解压缩数据大小的标头中插入内容长度.因此,如果外部服务器将提供gzip压缩响应,则Appengine脚本的最终结果(在上述Appengine的所有预处理和后处理行为之后)是内容长度标头的丢失.

上一篇:在Ubuntu Server上安装多个PHP版本


下一篇:apache2 配置入门