Hallo!
Wie kann ich einen HTTP-Request auf eine andere Domain *um*leiten? Gibt es dazu ein Modul?
Mein eigener Versuch (unten) funktioniert leider nur unzuverlässig (z.B. bei redirects oder bei Adressen ohne eigene IP).
Vielleicht kennt jemand eine Lösung.
Schon mal Dank im Voraus
Gruss
Andreas
--------------------
#!/usr/bin/perl
$url = 'http://www.domain.ch'.$ENV{'PATH_INFO'};
if($ENV{'QUERY_STRING'} != "") { $url .= "?$ENV{'QUERY_STRING'}"; } # Query-String an URL anhängen
Header definieren
use HTTP::Headers;
$header = new HTTP::Headers;
foreach $field (%ENV)
{
$value = $ENV{$field};
if($field !~ s/^HTTP_//gi) { next; }
$field =~ s/_/-/g;
$header->header($field=>$value);
}
STDIN einlesen
binmode STDIN;
do
{
read STDIN, $buf, 1024;
$stdin .= $buf;
}
while($buf);
close(STDIN);
Request durchführen
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$request = HTTP::Request->new(GET,$url,$header,$stdin);
$response = $ua->request($request);
Response ausgeben
binmode STDOUT;
$output = $response->as_string;
$output =~ s/[1]*(\r\n\n\r)//g; # Response-Code entfernen
print $output;
^\n\r ↩︎