我在GAE上有一个脚本,它请求来自合作伙伴的XML Feed,该合作伙伴通常为40MB,但只有5MB gzip。 GAE会自动解压缩此内容并抛出响应过大的错误:
HTTP响应太大:46677241。限制为:33554432。
脚本设置为解压缩响应本身。如何防止GAE妨碍和破坏?
以下是我的合作伙伴的回复标题:
HTTP/1.0 200 OK
Expires: Wed, 27 Jun 2012 05:42:07 GMT
Cache-Control: max-age=10368000
Content-Type: application/x-gzip
Accept-Ranges: bytes
Last-Modified: Wed, 22 Feb 2012 11:06:09 GMT
Content-Length: 5263323
Date: Tue, 28 Feb 2012 05:42:07 GMT
Server: lighttpd
X-Cache: MISS from static01
X-Cache-Lookup: MISS from static01:80
Via: 1.0 static01:80 (squid)
答案 0 :(得分:0)
您的合作伙伴服务器很可能使用纯XML进行响应,因为它认为http-client发送请求(即GAE URL Fetch服务)不支持gzipping。因此"响应太大"错误。
要宣布您确实希望接收gzip压缩内容,您需要在使用网址抓取服务时设置Accept-Encoding: gzip
标头。