Я сказал бы
я также кротко предположил бы, что любой мерой по производительности, которая на самом деле полагается на значение LoC, является койка :)
В LWP встроена эта возможность благодаря HTTP :: Сообщение
. Но это немного скрыто.
Сначала убедитесь, что у вас установлен Compress :: Zlib
, чтобы вы могли обрабатывать gzip
. HTTP :: Message :: decodable ()
выведет список разрешенных кодировок на основе установленных вами модулей; в скалярном контексте этот вывод принимает форму строки с разделителями-запятыми, которую можно использовать с HTTP-заголовком ' Accept-Encoding
', который LWP
требует, чтобы вы добавили в свой ] HTTP :: Request
-s самостоятельно. (В моей системе с установленным Compress :: Zlib
список следующий: « gzip
, x-gzip
, deflate
».)
Когда ваш HTTP :: Response
возвращается, убедитесь, что получили доступ к контенту с помощью $ response-> decoded_content
вместо $ response-> content
.
В LWP :: UserAgent
, все это объединяется следующим образом:
my $ua = LWP::UserAgent->new;
my $can_accept = HTTP::Message::decodable;
my $response = $ua->get('http://stackoverflow.com/feeds',
'Accept-Encoding' => $can_accept,
);
print $response->decoded_content;
Это также будет декодировать текст в строки Unicode Perl. Если вы только хотите, чтобы LWP
распаковывал ответ и не связывал текст, сделайте так:
print $response->decoded_content(charset => 'none');