HTTP::Request - wie kann man das "warten bis übermittelt" umgehen?
Niklaus
- perl
Hi Perl-Gurus
Situation:
Ich sauge mir via cgi eine beliebige Seite herunter. Die Seite gibt jedoch (eine lange Zeit) weder OK noch FEHLER zurück (zB. ein anderes cgi für die Aktien-Kurse).
Wie kann ich nun die Abfrage nach x Sekunden anhalten? (Sozusagen ein Timeout)
Folgende Zeile wartet bis alles angekommen ist:
$response = $ua->request($request);
########################## Beispiel: ###################################
require LWP::UserAgent;
require HTTP::Request;
print <<EOT;
Content-Type: text/html\r\n\r\n
via cgi:<br>
EOT
$url = 'http://www.bluesprof.com/index.html'; # beliebig
$ua = new LWP::UserAgent;
$ua->proxy('http',$ENV{'HTTP_PROXY'});
$request = new HTTP::Request 'GET', $url;
$response = $ua->request($request); ################ wartet bis übermittelt!
if ($response->is_success) {
&handleResponse($response);
} else {
print "Error!";
print $response->error_as_HTML;
}
sub handleResponse {
my($response)=@_;
my(@lines)=split(/\n/,$response->content());
foreach (@lines) { print "$_"; }
}
########################################################################
Hoffentlich kann mir jemand bei dieser Knacknuss helfen.
Gruss Niklaus
Hi Perl-Gurus
Situation:
Ich sauge mir via cgi eine beliebige Seite herunter. Die Seite gibt jedoch (eine lange Zeit) weder OK noch FEHLER zurück (zB. ein anderes cgi für die Aktien-Kurse).
Wie kann ich nun die Abfrage nach x Sekunden anhalten? (Sozusagen ein Timeout)
Hallo,
als "Guru" fühle ich mich zwar nicht angesprochen, aber vielleicht kann ich Dir helfen:
#!/usr/bin/perl
alarm(300);
....
Das "alarm..." beendet das Script nach 300 Sekunden.
Ist das hilfreich?
Reiner
Hi,
Wie kann ich nun die Abfrage nach x Sekunden anhalten? (Sozusagen ein Timeout)
folgende Module könnten Dir helfen (spontane Suche, näher kenne ich sie nicht):
LWP::Parallel (wenn Du mehrere Ressourcen anforderst)
Sys::AlarmCall
Cheatah
Hi nochmals
Also ich habe mir mal LWP::Parallel genauer angeschaut, und denke die Lösung hier zu finden.
Danke!
Gruss Niklaus