(HTTP) HTTP-Request umleiten
Andreas Flückiger
- perl
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
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);
}
binmode STDIN;
do
{
read STDIN, $buf, 1024;
$stdin .= $buf;
}
while($buf);
close(STDIN);
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$request = HTTP::Request->new(GET,$url,$header,$stdin);
$response = $ua->request($request);
binmode STDOUT;
$output = $response->as_string;
$output =~ s/[1]*(\r\n\n\r)//g; # Response-Code entfernen
print $output;
^\n\r ↩︎