gpt4 book ai didi

perl - 如何在perl中获取http和https返回码

转载 作者:可可西里 更新时间:2023-11-01 16:28:28 27 4
gpt4 key购买 nike

我是 perl 的新手,任何帮助将不胜感激!!

我必须通过 perl 调用一些 URL(在 unix 机器上)。URL 是 http 和 https

如果 URL 被成功调用,那么它很好,否则创建一个日志文件,说明无法调用 URL。

为了调用 URL,我想使用例如

  exec 'firefox http://www.yahoo.com';

但是如何获取http和https请求状态码呢?类似如果状态为 200,则 ok 否则错误..

请帮忙!!

最佳答案

与其使用像 Firefox 这样的浏览器,不如使用像 HTTP::Tiny 这样的 HTTP 客户端库。或 LWP::UserAgent .

例如:

#!/usr/bin/env perl

use strict;
use warnings;
use feature 'say';

use HTTP::Tiny;

my $Client = HTTP::Tiny->new();

my @urls = (
'http://www.yahoo.com',
'https://www.google.com',
'http://nosuchsiteexists.com',
);

for my $url (@urls) {
my $response = $Client->get($url);
say $url, ": ", $response->{status};
}

哪些输出:

alex@yuzu:~$ ./return_status.pl 
http://www.yahoo.com: 200
https://www.google.com: 200
http://nosuchsiteexists.com: 599

如果您想正确识别重定向状态代码 (3XX),您必须将 max_redirect 参数设置为 0。

alex@yuzu:~$ perl -MHTTP::Tiny -E 'say HTTP::Tiny->new(max_redirect => 0)->get("http://www.nestoria.co.uk/soho")->{status};'
301

如果您只关心成功,那么响应 hashref 包含一个“成功”字段,成功时为真,失败时为假。

alex@yuzu:~$ perl -MHTTP::Tiny -E 'say HTTP::Tiny->new()->get("http://www.google.com")->{success};'
1

关于perl - 如何在perl中获取http和https返回码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24000262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com