Perl LWP::useragent捕获服务器响应头

Perl LWP::useragent捕获服务器响应头,perl,http-headers,content-type,Perl,Http Headers,Content Type,我正在向Web服务器查询文档,希望捕获文档和相关的服务器响应头(特别是内容类型:…)。我不知道如何读标题。以下是我的Perl脚本中的一些片段,为了清晰起见,我留下了错误检查: use LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->agent( 'requiredCustomUserAgent' ); # I'm required to set a custom user agent $imageData = $response-

我正在向Web服务器查询文档,希望捕获文档和相关的服务器响应头(特别是内容类型:…)。我不知道如何读标题。以下是我的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
因此,此时我可以检索web文档,但我想知道服务器随它发送的内容类型。不幸的是,这并不总是与bash“file”命令找到的mime类型相同。如果是.js或.css文档,此文件方法将失败。


请求返回的东西包含一个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;

我想答案一定是在,但似乎我不知道如何阅读$r->header($field=>$value)和$h->content\u type上的信息只是一个警告。实际上,$response->headers->as_字符串应该会生成原始响应头,但它根本不会。因此,我们应该注意这个输出。这一点在查看设置的Cookie值时尤为明显。
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;