Thread LWP/Redirect erkennen (8 answers)
Opened by jan at 2004-08-13 02:02

Johannes
 2004-08-13 05:14
#38032 #38032
User since
2004-08-12
8 Artikel
BenutzerIn
[default_avatar]
Tja, wenn ich dessen Script zusammenpicke, dann klappt es, bei mir allerdings nicht, wobei ich mein Script nocheinmal etwas umgeschrieben habe. Was stimmt denn an jener Subroutine nicht, dass der Redirect nicht durchgeführt wird?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub check {
my ($url) = shift;
$url =~ m{http://([^\:|/]*)}s;
my $host = $1;
my $req = HTTP::Request->new(HEAD => $url);
$req->header('Host' => $host);
$req->header('If-Modified-Since' => time2str($mtime));
my $resp;
$resp = $ua->request($req) or warn "Response fuer $url fehlgeschlagen: ",$resp->status_line,"\n";
print $resp->is_success;

if(! $resp->is_success and $resp->code == RC_NOT_MODIFIED) {
print "$url wurde seit ",time2str($mtime)," nicht geaendert.\n";
} elsif (! $resp->is_success) {
print $url, " => ", $resp->status_line, "\n";
} elsif($resp->previous and $resp->previous->is_redirect) {
check($resp->request->url);
} else {
print "$url wurde geaendert!\n";
}
}


Ganz im Gegensatz dazu klappt eben

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub check_url {  # given an absolute URL
my $url = $_[0];
my $resp = $browser->head($url);
if(!$resp->is_success) {
print $url, "\n => ", $resp->status_line, "\n";
} elsif($resp->previous and $resp->previous->is_redirect) {
check_url($resp->request->url);
# print "## Moved $url\n## => ", $resp->request->url, "\n";
} else {
print "## OK: $url\n";
}
}
\n\n

<!--EDIT|Johannes|1092360025-->

View full thread LWP/Redirect erkennen