Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

Wieso funktioniert LWP nicht mit Strato?

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Leider unterstützt Strato das praktische LWP-Perl-Modul nicht. Wie kann man das umgehen?

Folgendes Beispiel zeigt eine Funktion, die das Problem umgeht - der Code ist sicherlich nicht optimal, funktioniert aber.

sub getURL
{
my $url = shift;
if ($url =~ m,^http://([^/:]+)(?::(\d+))?(/\S*)?$,) {
    my $host = $1;
    my $port = $2 || 80;
    my $path = $3;
    
    $path = "/" unless defined($path);

require IO::Socket;
local($^W) = 0;
my $sock = IO::Socket::INET->new(PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp',
Timeout => 60) || return;
$sock->autoflush;
my $netloc = $host;
$netloc .= ":$port" if $port != 80;
print $sock join("\015\012" =>
"GET $path HTTP/1.0",
"Host: $netloc",
"User-Agent: lwp-trivial/$VERSION",
"", "");

my $buf = "";
my $n;
1 while $n = sysread($sock, $buf, 8*1024, length($buf));
return undef unless defined($n);

if ($buf =~ m,^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012,) {
my $code = $1;
if ($code =~ /^30[1237]/ && $buf =~ /\012Location:\s*(\S+)/) {
my $url = $1;
return undef if $loop_check{$url}++;
return _get($url);
}
return undef unless $code =~ /^2/;
$buf =~ s/.+?\015?\012\015?\012//s;
}

return $buf;
}
}


Aufgerufen wird die Subroutine mit &getURL($url). Der Code ist äußerst stark an entsprechende Funktionalitäten im LWP-Modul selbst angelehnt.

Autor: Alexander Dilthey | Erstmalig veröffentlicht: 12.12.2001 | Einen Artikel schreiben?

 

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.