2012-02-28 12 views
5

mam skrypt na GAE, że żąda kanału XML od partnera, który jest zazwyczaj 40MB ale tylko 5MB dyskach. GAE jest automatycznie rozpakować zawartość i rzuca błąd, że odpowiedź jest zbyt duży:Jak uniemożliwić GAE wyciągnięcie spakowanego pliku XML w formacie gzip?

odpowiedzi HTTP była zbyt duża: 46677241. limit wynosi: 33554432.

Skrypt jest ustawiony tak, aby rozpakować sama odpowiedź. Jak zapobiec przeszkadzaniu GAE i łamaniu?

Oto nagłówek odpowiedzi z moim partnerem:

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) 

Odpowiedz

0

Najprawdopodobniej serwer twojego partnera odpowiada zwykły XML, ponieważ uważa, że ​​żądania HTTP klienta wysyłanie (tj GAE URL Fetch usługi) nie obsługuje gzipping. Stąd błąd "odpowiedź był zbyt duży".

Aby ogłosić, że rzeczywiście chcesz otrzymywać spakowane treści gzip, musisz ustawić nagłówek Accept-Encoding: gzip podczas korzystania z usługi pobierania URL.

+0

przesyłana nazwa pliku faktycznie kończy się na "xml.gz". ale dzięki temu dodam to do prośby i zobaczę, czy to pomaga. – scottzer0