如何从给定的URL访问HTTP标头?

时间:2012-09-09 21:28:32

标签: perl http-headers

我正在寻找一种从给定网址获取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');

上面的代码什么都没打印。那么,我在哪里错了,或者有更好的方法来访问标题。

2 个答案:

答案 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;