8

我有一个简单的 url,它执行 302 temp。移动到另一个页面。

我尝试获取 URL 是否返回代码 200(表示 OK)以检索它并在返回 200 以外的内容时停止。

我的代码:

my $ua = LWP::UserAgent->new( env_proxy => 1,keep_alive => 1, timeout => 30, agent => "Mozilla/4.76 [en] (Win98; U)");
my $response = $ua->get( $currenturl);
print $response->code;

上面的代码总是返回 200,即使它是 302。我在 Firefox 中使用 FireBug 测试了标头响应。该 URL 在 FireBug 的 Net 模块中返回“302 已临时移动”。但是上面 perl 中的代码返回 200。为什么?

4

1 回答 1

19

LWP::UserAgent 自动遵循HTTP 重定向。您可以通过将max_redirect选项设置为来禁用此类行为0

my $ua = LWP::UserAgent->new( max_redirect => 0, env_proxy => 1,keep_alive => 1, timeout => 30, agent => "Mozilla/4.76 [en] (Win98; U)");
my $response = $ua->get( $currenturl);
print $response->code;
于 2011-12-08T14:35:16.413 回答