Perl LWP::UserAgent 捕获服务器响应头信息

6

我正在查询一个Web服务器上的文档,我想捕获文档和相关服务器响应头(尤其是Content-Type: ...)。我很难找到如何读取头信息。以下是我的Perl脚本的一些片段,为了清晰起见,我省略了错误检查:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent( 'requiredCustomUserAgent' ); # I'm required to set a custom user agent
$imageData = $response->content;         # This is the received document

此时,我可以检索到网页文档,但我想知道服务器发送的 Content-Type 是什么。不幸的是,这并不总是与 bash 'file' 命令找到的 mime 类型相同。对于 .js 或 .css 文档,此 file 方法会失败。


2个回答

23

1
只是提醒一下。实际上,$response->headers->as_string 应该会产生原始响应头,但它实际上并没有。因此,我们应该小心处理这个输出。当我们查看 Set-Cookie 值时,这一点尤为明显。 - Jacques

0

请求返回的内容包含一个HTTP::Headers对象,因此请查看HTTP::Headers文档以了解如何使用它。例如

my $response = $ua->request($req);       
my $headers = $response->headers();
my @header_field_names = $headers->header_field_names();
$logger->info("$_: ".$headers->header($_)) for grep {/Hogwarts/} @header_field_names;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接