I've submitted two patches awhile back. No response. I don't think this project is actively maintained anymore. At least your patches are on the mailing list archives for others if needed.

-jr

Henri Gomez wrote:

Nobody to revue my GZIP patch and commit to HEAD ?


On Fri, 4 Mar 2005 16:25:45 +0100, Henri Gomez <[EMAIL PROTECTED]> wrote:


Here is a patch to support GZIP in CommonsXmlRpcTransport.java :

Anyone to revue and commit to HEAD ?

Regards

---

--- CommonsXmlRpcTransport.java.orig    2005-03-04 15:32:24.000000000 +0100
+++ CommonsXmlRpcTransport.java 2005-03-04 15:33:50.000000000 +0100
@@ -59,6 +59,8 @@
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
+import java.util.zip.GZIPInputStream;
+
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
@@ -97,11 +99,16 @@
   private HttpClient client;
   private final Header userAgentHeader = new Header("User-Agent",
XmlRpc.version);
   private boolean http11 = false; // defaults to HTTP 1.0
+    private boolean gzip = false;

   public InputStream sendXmlRpc(byte[] request) throws IOException,
XmlRpcClientException {
       PostMethod method = new PostMethod(url.toString());
       method.setHttp11(http11);
       method.setRequestHeader(new Header("Content-Type", "text/xml"));
+
+        if (gzip)
+               method.setRequestHeader(new Header("Accept-Encoding", "gzip"));
+
       method.setRequestHeader(userAgentHeader);
       // TODO: authentication not implemented yet
       method.setRequestBody(new ByteArrayInputStream(request));
@@ -109,14 +116,32 @@
       HostConfiguration hostConfig = new HostConfiguration();
       hostConfig.setHost(hostURI);
       client.executeMethod(hostConfig, method);
-        return method.getResponseBodyAsStream();
+
+        boolean lgzipo = false;
+
+        Header lHeader = method.getResponseHeader( "Content-Encoding" );
+        if ( lHeader != null ) {
+            String lValue = lHeader.getValue();
+            if ( lValue != null )
+                       lgzipo = (lValue.indexOf( "gzip" ) >= 0);
+        }
+
+        if (lgzipo)
+               return( new GZIPInputStream(
method.getResponseBodyAsStream() ) );
+        else
+               return method.getResponseBodyAsStream();
   }

   public void setHttp11(boolean http11) {
       this.http11 = http11;
   }

+    public void setGzip(boolean gzip) {
+        this.gzip = gzip;
+    }
+
   public void setUserAgent(String userAgent) {
       userAgentHeader.setValue(userAgent);
   }
}
+






Reply via email to