Skip to content
Extraits de code Groupes Projets
Valider 4119e784 rédigé par Aorimn's avatar Aorimn
Parcourir les fichiers

Gestion des contenus gzippés

Apparemment, LWP::UserAgent ne gunzippe pas les contenus reçus, du coup
on le fait lorsqu'on voit l'entête qui-va-bien.
parent 0f051f0f
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -12,6 +12,7 @@ use warnings; ...@@ -12,6 +12,7 @@ use warnings;
use LWP::UserAgent; use LWP::UserAgent;
use HTML::Entities; use HTML::Entities;
use Encode; use Encode;
use IO::Uncompress::Gunzip;
use IO::Pipe; use IO::Pipe;
...@@ -199,6 +200,27 @@ sub _real_wget ...@@ -199,6 +200,27 @@ sub _real_wget
return ($status, $content) if($raw_result); return ($status, $content) if($raw_result);
my $encoding = $response->header('content-encoding');
if(defined($encoding))
{
if(lc $encoding eq 'gzip')
{
$::logger->debug("Having gzipped data, decoding...");
my $newcontent = '';
my $z = new IO::Uncompress::Gunzip \$content, { 'Append' => 1 };
while(not $z->eof)
{
$z->read($newcontent);
}
$z->close;
$content = $newcontent;
}
else
{
$::logger->debug("Unsupported encoding: '$encoding'");
}
}
$content = decode("utf8", $content); $content = decode("utf8", $content);
$content = decode_entities($content); $content = decode_entities($content);
return ($status, encode("utf8", $content)); return ($status, encode("utf8", $content));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter