我正在寻找一种从给定网址获取http headers
的方法。我尝试了以下代码,但它无法正常工作:
#!/usr/bin/perl
#use warnings;
#use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://cpan.org");
print $res->header('Content-Length');
上面的代码什么都没打印。那么,我在哪里错了,或者有更好的方法来访问标题。
答案 0 :(得分:3)
在假设您可以像使用它一样使用它之前,您应该检查请求的结果:
use v5.10;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://444.cpan.org");
if( $res->is_success ) {
say "Content length is ", $res->header('Content-Length');
}
else {
say "Error! ", $res->code;
}
请记住,Content-Length标头并不意味着您有成功的请求。错误响应可能仍包含消息正文,该消息正文具有长度。
答案 1 :(得分:2)
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://cpan.org");
print $res->headers->as_string;