> -----Ursprüngliche Nachricht-----
> Von: sebb [mailto:[EMAIL PROTECTED] 
> Gesendet: Montag, 12. Dezember 2005 12:47
> An: HttpClient User Discussion
> Betreff: Re: Does (or will?) HttpClient handle compressed content ?
> 
> It's also possible to do the gzip decoding earlier, by 
> wrapping the response InputStream in a GZIPInputStream() - 
> unless the compressed version is needed for anything.
> 
> Or is that a bad idea?

No, it's ok. It will safe you a little bit time. Just put the code in your
corresponding method 
and change to 

new GZIPInputStream (response.getInputStream());


> 
> S.
> On 11/12/05, Ingo Meyer <[EMAIL PROTECTED]> wrote:
> > Hi all,
> >
> > I agree with the point that encoding should be a part of HttpClient.
> > But for all who don't want to wait until it's implemented 
> here my solution:
> >
> > First, add this to your HostConfiguration:
> >
> >                final Collection<Header> c = new 
> ArrayList<Header> ();
> >                c.add (new Header ("Accept", 
> > 
> "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/p
> > lain;q
> > =0.8,image/png,*/*;q=0.5"));
> >                c.add (new Header ("Accept-Language", 
> > "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"));
> >        -->     c.add (new Header ("Accept-Encoding", "gzip, 
> deflate"));
> >                c.add (new Header ("Accept-Charset", 
> > "ISO-8859-1,utf-8;q=0.7,*;q=0.7"));
> >                hostConfiguration.getParams ().setParameter 
> > ("http.default-headers", c);
> >
> >
> > Secondly, after the transfer is proceeded call the following method 
> > with the response bytes:
> >
> >        protected byte[] decodeResponse (final byte[] responseBytes) 
> > throws Exception
> >        {
> >                LOG.debug ("request enter decodeResponse()");
> >
> >                // Getting Content-Encoding
> >                final String sContentEncoding = getResponseHeader 
> > ("Content-Encoding");
> >
> >                // If available...
> >                if (sContentEncoding != null)
> >                {
> >                        InputStream encoded = null;
> >
> >                        // GZIP
> >                        if (sContentEncoding.equals ("gzip"))
> >                        {
> >                                LOG.debug ("method received 
> > gzip-encoded content");
> >
> >                                encoded = new GZIPInputStream (new 
> > ByteArrayInputStream (responseBytes));
> >                        }
> >                        // DEFLATE
> >                        else if (sContentEncoding.equals ("deflate"))
> >                        {
> >                                LOG.debug ("method received 
> > deflate-encoded content");
> >
> >                                encoded = new 
> InflaterInputStream (new 
> > ByteArrayInputStream (responseBytes));
> >                        }
> >
> >                        final ByteArrayOutputStream decoded = new 
> > ByteArrayOutputStream ();
> >                        final byte buffer[] = new byte[1024];
> >
> >                        for (int length; (length = encoded.read 
> > (buffer, 0,
> > 1024)) != -1;)
> >                        {
> >                                decoded.write (buffer, 0, length);
> >                        }
> >
> >                        // closing
> >                        encoded.close ();
> >                        decoded.close ();
> >
> >                        return decoded.toByteArray ();
> >                }
> >
> >                LOG.debug ("method received uncoded content");
> >
> >                return responseBytes;
> >        }
> >
> >
> > If anyone want's to use it one thing still not work. The 
> deflate part!
> > I have no idea about it, all works fine with gzip. So to get it 
> > running better change to just  gzip:
> >
> >        -->     c.add (new Header ("Accept-Encoding", "gzip"));
> >
> > So any help with the deflate part will be recommened.
> >
> > Thanks
> >
> > Ingo Meyer
> >
> >
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Roland Weber [mailto:[EMAIL PROTECTED]
> > > Gesendet: Samstag, 10. Dezember 2005 21:29
> > > An: HttpClient User Discussion
> > > Betreff: Re: Does (or will?) HttpClient handle compressed 
> content ?
> > >
> > > RFC 2616 distinguishes between content codings (section 3.5) and 
> > > transport codings (section 3.6). Content coding is out of 
> scope, as 
> > > Oleg mentioned. HttpClient will not automatically decompress for 
> > > example a gzipped tar into a plain tar archive.
> > >
> > > Transport coding is in scope for HttpClient/HttpComponents, as we 
> > > already support "chunked". We can consider adding support 
> for other 
> > > transport codings, such as "gzip". The pluggable filter 
> architecture 
> > > of HttpComponents will at least allow you to add your own support 
> > > for transport codings. I guess that seamless 
> interoperability of the 
> > > HttpComponents "chunked" implementation with additional custom 
> > > transport encodings will be made possible on request.
> > > I don't think we'll find time to add new transport codings out of 
> > > the box in HttpClient nor HttpComponents. Which implies that the 
> > > interaction of chunked with other transport codings will not be 
> > > tested until somebody tries to do it. It is a tricky thing, since 
> > > the response filter chain will have to depend on the value of the 
> > > Transfer-Encoding response header. Given the complexity 
> of the task, 
> > > I see this item dangling near the end of the to-do list forever.
> > > As always, contributions will be welcome.
> > >
> > > If somebody should contribute code that performs 
> decompression for 
> > > transport codings, we sure won't stop you from re-using that code 
> > > for decompression of content codings.
> > > But that will remain the responsibility of the application using 
> > > HttpComponents.
> > >
> > > cheers,
> > >   Roland
> > >
> > > 
> --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: 
> > > [EMAIL PROTECTED]
> > > For additional commands, e-mail:
> > > [EMAIL PROTECTED]
> > >
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: 
> [EMAIL PROTECTED]
> > For additional commands, e-mail: 
> > [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: 
> [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to