8

302 temp を実行する単純な URL があります。別のページに移動します。

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;

上記のコードは、302 であっても常に 200 を返します。Firefox で FireBug を使用してヘッダー応答をテストしました。URL は、FireBug の Net モジュールで「302 Moved Temporarily」を返します。しかし、上記の perl のコードは 200 を返します。なぜですか?

4

1 に答える 1

19

LWP::UserAgent は自動的にHTTP リダイレクトに従います。max_redirectoption set を に渡すことで、このような動作を無効にすることができます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 に答える