Andreas Flückiger: (HTTP) HTTP-Request umleiten

Beitrag lesen

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;


  1. ^\n\r ↩︎