Perl: LWP :: UserAgent всегда возвращает код 200 для перенаправленных URL - PullRequest
7 голосов
/ 08 декабря 2011

У меня есть простой URL, который делает 302 темп.перейти на другую страницу.

Я пытаюсь получить доступ, если URL-адрес возвращает код 200 (для подтверждения), чтобы извлечь его и остановить, если возвращается что-то, отличное от 200.1005 *

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. Я проверил ответ заголовка, используя FireBug в Firefox.URL возвращает «302 Перемещено временно» в сетевом модуле в FireBug.Но код выше в Perl возвращает 200. Почему?

1 Ответ

18 голосов
/ 08 декабря 2011

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;
...