diff --git a/src/main/org/apache/tools/ant/taskdefs/Get.java b/src/main/org/apache/tools/ant/taskdefs/Get.java index d1125ae26..b25ab8eb0 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Get.java +++ b/src/main/org/apache/tools/ant/taskdefs/Get.java @@ -29,6 +29,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.Date; +import java.util.zip.GZIPInputStream; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.MagicNames; @@ -68,6 +69,7 @@ public class Get extends Task { private static final String HTTPS = "https"; private static final String DEFAULT_AGENT_PREFIX = "Apache Ant"; + private static final String GZIP_CONTENT_ENCODING = "gzip"; private Resources sources = new Resources(); private File destination; // required @@ -679,6 +681,8 @@ public class Get extends Task { + encoding); } + connection.setRequestProperty("Accept-Encoding", GZIP_CONTENT_ENCODING); + if (connection instanceof HttpURLConnection) { ((HttpURLConnection) connection) .setInstanceFollowRedirects(false); @@ -767,6 +771,10 @@ public class Get extends Task { getLocation()); } + if (GZIP_CONTENT_ENCODING.equals(connection.getContentEncoding())) { + is = new GZIPInputStream(is); + } + os = new FileOutputStream(dest); progress.beginDownload(); boolean finished = false;