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); > } > } > + >