Как мне создать сжатый gzip HTTP :: Response? - PullRequest
3 голосов
/ 29 июля 2011

Мне нужно создать HTTP :: Response со сжатыми данными.Как мне сделать содержимое gzipped?Должен ли я просто добавить соответствующие заголовки и сжать его сам, используя Compress :: Zlib?Или любой из модулей LWP предоставляет метод для обработки этого?

1 Ответ

2 голосов
/ 10 августа 2011

Это то, что вам нужно?Вы распаковываете данные, устанавливаете заголовок Content-encoding и отправляете его.

use strict;
use warnings;

use HTTP::Response;
use IO::Compress::Gzip qw(gzip);

my $data = q(My cat's name is Buster);

my $gzipped_data;
my $gzip = gzip \$data => \$gzipped_data;
print STDERR $gzipped_data;

my $response = HTTP::Response->new;

$response->code( 200 );
$response->header( 'Content-type'     => 'text/plain' );
$response->header( 'Content-encoding' => 'gzip' );
$response->header( 'Content-length'   => length $gzipped_data );

$response->content( $gzipped_data );

print $response->as_string;
...