WWW::Mechanize::Cached::GZip - like WWW::Mechanize + caching + gzip-compression
use WWW::Mechanize::Cached::GZip; my $mech_cached = WWW::Mechanize::Cached::GZip->new(); my $response = $mech_cached->get($url); print "x-content-length (before unzip) = ", $response->header('x-content-length'); print "content-length (after unzip) = ", $response->header('content-length'); ... # for the same $url - the already uncompressed $response2 is now taken from cache: my $response2 = $mech_cached->get($url);
The WWW::Mechanize::Cached::GZip module tries to fetch a URL by requesting gzip-compression from the webserver.
Caching is done by inheriting from WWW::Mechanize::Cached. Constructor parameters are identically and described there.
If the response contains a header with 'Content-Encoding: gzip', it decompresses the response-body in order to get the original (uncompressed) content.
This module will help to reduce bandwith fetching webpages, if supported by the webeserver. If the webserver does not support gzip-compression, no decompression will be made.
The decompression of the response is handled by Compress::Zlib::memGunzip.
There is a small webform, you can instantly test, whether a webserver supports gzip-compression on a particular URL: http://www.computerhandlung.de/www-mechanize-cached-gzip.htm
This modules is a direct subclass of WWW::Mechanize::Cached and will therefore accept the same constructor parameters and support any methods provided by WWW::Mechanize::Cached.
The default behavoir is to use Cache::FileCache which stores its files somewhere under /tmp.
Adds 'Accept-Encoding' => 'gzip' to outgoing HTTP-headers before sending.
Unzips response-body if 'content-encoding' is 'gzip' and corrects 'content-length' to unzipped content-length.
Copyright (c) 2011, Peter Giessner
email@example.com. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.