# Mechanize and Content Encoding Error

**URL:** <https://rubytalk.org/t/mechanize-and-content-encoding-error/61974>\
**Category:** ruby-talk\
**Created:** [28 February 2011 11:08 UTC](https://rubytalk.org/t/mechanize-and-content-encoding-error/61974 "2011-02-28T11:08:30Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luis\_G](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Luis\_G](https://rubytalk.org/u/Luis_G)\
**Post date:** [28 February 2011 11:08 UTC](https://rubytalk.org/t/mechanize-and-content-encoding-error/61974/1 "2011-02-28T11:08:30Z")

</div>

Hello guys.

I'm trying to get some files from a webpage using Mechanize. Something  
like this:

begin  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timeout::timeout(25){  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res = agent.get(torrent\_download).save\_as(filename)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  
&nbsp;&nbsp;&nbsp;&nbsp;rescue SocketError =\> e  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error 'Fail saving the file '+filename+': SocketError'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end  
&nbsp;&nbsp;&nbsp;&nbsp;rescue SystemCallError =\> e  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error 'Fail saving the file '+filename+': SystemCallError'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end  
&nbsp;&nbsp;&nbsp;&nbsp;rescue Timeout::Error =\> e  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error 'Fail saving the file '+filename+' Timeout::Error'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end  
&nbsp;&nbsp;&nbsp;&nbsp;rescue Net::HTTPBadResponse =\> e  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error 'Fail saving the file '+filename+' HTTPBadResponse'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end  
&nbsp;&nbsp;&nbsp;&nbsp;rescue Mechanize::ResponseCodeError =\> e  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error 'Fail saving the file '+filename+'  
Mechanize::RespError'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end  
end

Everything was working perfectly till I found a page that, if we access  
using browser, we get the following error:

Content Encoding Error

([http://support.mozilla.com/en-US/kb/error%20loading%20web%20sites#w\_content-encoding-error](http://support.mozilla.com/en-US/kb/error%20loading%20web%20sites#w_content-encoding-error))

When I get a page like that I get the following exception:

/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain/body\_decoding\_handler.rb:24:in  
`inflate': invalid stored block lengths (Zlib::DataError)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain/body\_decoding\_handler.rb:24:in  
`handle'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain.rb:29:in  
`pass'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain/handler.rb:6:in  
`handle'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain/response\_reader.rb:35:in  
`handle'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize/chain.rb:24:in  
`handle'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:543:in  
`fetch\_page'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from /usr/lib/ruby/1.8/net/http.rb:1053:in `request'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from /usr/lib/ruby/1.8/net/http.rb:2140:in `reading\_body'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from /usr/lib/ruby/1.8/net/http.rb:1052:in `request'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:538:in  
`fetch\_page'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:611:in  
`fetch\_page'  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from  
/var/lib/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:259:in `get'  
...

How can I handle this exception?  
SystemCallError shouldn't handle all kind of exceptions, including this  
one?  
Any ideas?

Thanks,

Luis

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
