in reply to Referer and HEAD using WWW::Mechanize
I ran your code and there was no indication in the output that any errors occurred.
200 200 Back 1 OK 200 Back 2 OK 200 Back 1 OK 200 Back 2 OK
I improved your test so we can actually see the problem:
#!perl use strict; use warnings; use WWW::Mechanize qw( ); my $mech = WWW::Mechanize->new(); #$mech->proxy(['http', 'ftp'], 'http://localhost:8080/'); my $url = 'http://www.vitoco.cl/test-ref'; #my $url = 'http://www.vitoco.cl/test-ref/index2.html'; $mech->get($url)->is_success() or die; @ARGV or die; for my $img ($mech->images) { if ($ARGV[0]) { $mech->head($img->url_abs())->is_success() or die; $mech->back() or die; } my $response = $mech->get($img->url_abs()); print($mech->status(), "\n"); print( ( $response->redirects() )[0]->request()->referer(), "\n"); $mech->back() or die; print("\n"); }
$ perl a.pl 0 200 http://www.vitoco.cl/test-ref 200 http://www.vitoco.cl/test-ref $ perl a.pl 1 200 http://www.vitoco.cl/test-ref/img1 200 http://www.vitoco.cl/test-ref/img1
When I upgraded WWW::Mechanize, the back returned false after a head.
$ perl a.pl 0 200 http://www.vitoco.cl/test-ref 200 http://www.vitoco.cl/test-ref $ perl a.pl 1 Died at a.pl line 22.
So yes, WWW::Mechanize is buggy.
if ( $request->method eq 'GET' || $request->method eq 'POST' ) { $self->_push_page_stack(); }
should be changed to
$self->_push_page_stack();
Please file a bug report.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Referer and HEAD using WWW::Mechanize
by vitoco (Hermit) on Aug 14, 2009 at 20:10 UTC |