perl 如何从给定的url访问HTTP头?

ivqmmu1c  于 2022-12-19  发布在  Perl
关注(0)|答案(2)|浏览(128)

我正在寻找一种方法来获得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');

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

wwodge7n

wwodge7n1#

您应该先检查请求的结果,然后再假设您可以像它工作一样使用它:

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标头并不意味着请求成功。错误响应可能仍然包含消息正文,该正文具有一定的长度。

lf5gs5x2

lf5gs5x22#

use LWP::UserAgent;

my $ua  = LWP::UserAgent->new;
my $res = $ua->get("http://cpan.org");
print $res->headers->as_string;

相关问题