From ae57b4e54143d4170732511ecd2b1708d3a0f3db Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 21 Sep 2013 08:48:43 +0000 Subject: [PATCH] * save loads of bandwith simply by enabling gzip compression for xmlrpc requests :D @see http://forum.opensubtitles.org/viewtopic.php?f=8&t=14246#p27901 --- .../filebot/web/OpenSubtitlesXmlRpc.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source/net/sourceforge/filebot/web/OpenSubtitlesXmlRpc.java b/source/net/sourceforge/filebot/web/OpenSubtitlesXmlRpc.java index 04628026..abc3faf1 100644 --- a/source/net/sourceforge/filebot/web/OpenSubtitlesXmlRpc.java +++ b/source/net/sourceforge/filebot/web/OpenSubtitlesXmlRpc.java @@ -5,6 +5,7 @@ import static net.sourceforge.tuned.StringUtilities.*; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.Serializable; import java.net.MalformedURLException; import java.net.URI; @@ -22,6 +23,7 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.DeflaterInputStream; +import java.util.zip.GZIPInputStream; import net.sourceforge.filebot.web.OpenSubtitlesSubtitleDescriptor.Property; import net.sourceforge.tuned.ByteBufferOutputStream; @@ -300,7 +302,16 @@ public class OpenSubtitlesXmlRpc { protected Map invoke(String method, Object... arguments) throws XmlRpcFault { try { - XmlRpcClient rpc = new XmlRpcClient(getXmlRpcUrl(), false); + XmlRpcClient rpc = new XmlRpcClient(getXmlRpcUrl(), false) { + public void parse(InputStream input) throws XmlRpcException { + try { + super.parse(new GZIPInputStream(input)); + } catch (IOException e) { + throw new XmlRpcException(e.getMessage(), e); + } + }; + }; + rpc.setRequestProperty("Accept-Encoding", "gzip"); Map response = (Map) rpc.invoke(method, arguments); checkResponse(response);