From e9f9e2055a46f99a99342a4a204fcc146fd5cd5e Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Sun, 20 Feb 2011 15:26:30 +0000 Subject: [PATCH] accept gzip content encoding git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@500 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/util/ParserUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/de/schildbach/pte/util/ParserUtils.java b/src/de/schildbach/pte/util/ParserUtils.java index e64f92d9..4f1a951b 100644 --- a/src/de/schildbach/pte/util/ParserUtils.java +++ b/src/de/schildbach/pte/util/ParserUtils.java @@ -38,6 +38,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.zip.GZIPInputStream; /** * @author Andreas Schildbach @@ -184,6 +185,7 @@ public final class ParserUtils connection.setConnectTimeout(SCRAPE_CONNECT_TIMEOUT); connection.setReadTimeout(SCRAPE_READ_TIMEOUT); connection.addRequestProperty("User-Agent", SCRAPE_USER_AGENT); + connection.addRequestProperty("Accept-Encoding", "gzip"); // workaround to disable Vodafone compression connection.addRequestProperty("Cache-Control", "no-cache"); @@ -201,7 +203,13 @@ public final class ParserUtils final int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { - return connection.getInputStream(); + final String contentEncoding = connection.getContentEncoding(); + final InputStream is = connection.getInputStream(); + + if ("gzip".equalsIgnoreCase(contentEncoding)) + return new GZIPInputStream(is); + + return is; } else {