aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2014-09-10 20:10:05 -0700
committerScott Jackson <daneren2005@gmail.com>2014-09-10 20:10:05 -0700
commit51daaa5023774fece5ea31d117f82a82cc66d7d9 (patch)
tree8754e0a89818e7df8ddaf125b62282ee66fa757e
parent880033f291d265e3d656c8fb315857ceb9bb1d99 (diff)
downloaddsub-51daaa5023774fece5ea31d117f82a82cc66d7d9.tar.gz
dsub-51daaa5023774fece5ea31d117f82a82cc66d7d9.tar.bz2
dsub-51daaa5023774fece5ea31d117f82a82cc66d7d9.zip
Decompress any gzip compressed streams we come across
-rw-r--r--src/github/daneren2005/dsub/service/RESTMusicService.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/github/daneren2005/dsub/service/RESTMusicService.java b/src/github/daneren2005/dsub/service/RESTMusicService.java
index 3e59abe3..9509b41a 100644
--- a/src/github/daneren2005/dsub/service/RESTMusicService.java
+++ b/src/github/daneren2005/dsub/service/RESTMusicService.java
@@ -620,7 +620,12 @@ public class RESTMusicService implements MusicService {
List<String> parameterNames = Arrays.asList("id");
List<Object> parameterValues = Arrays.<Object>asList(entry.getCoverArt());
HttpEntity entity = getEntityForURL(context, url, null, parameterNames, parameterValues, progressListener);
- in = entity.getContent();
+
+ in = entity.getContent();
+ Header contentEncoding = entity.getContentEncoding();
+ if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
+ in = new GZIPInputStream(in);
+ }
// If content type is XML, an error occured. Get it.
String contentType = Util.getContentType(entity);
@@ -698,6 +703,10 @@ public class RESTMusicService implements MusicService {
String contentType = Util.getContentType(response.getEntity());
if (contentType != null && contentType.startsWith("text/xml")) {
InputStream in = response.getEntity().getContent();
+ Header contentEncoding = response.getEntity().getContentEncoding();
+ if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
+ in = new GZIPInputStream(in);
+ }
try {
new ErrorParser(context, getInstance(context)).parse(new InputStreamReader(in, Constants.UTF_8));
} finally {
@@ -1309,6 +1318,10 @@ public class RESTMusicService implements MusicService {
HttpEntity entity = getEntityForURL(context, url, null, parameterNames, parameterValues, progressListener);
in = entity.getContent();
+ Header contentEncoding = entity.getContentEncoding();
+ if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
+ in = new GZIPInputStream(in);
+ }
// If content type is XML, an error occurred. Get it.
String contentType = Util.getContentType(entity);