MudGuard: +(PERL) POST-Request per Perlscript

Beitrag lesen

Hallo,

ich versuche mich gerade daran, einen Post-Request per Perlscript zu bauen. Aber es gelingt mir nicht so recht.
Mein Script ist (noch) primitiv, es soll aber - wenn ich erstmal rausgekriegt habe, wie der post-request aussehen muß  - komplexer werden. Konkret will ich damit ein paar Tests von Formularen automatisch durchführen. Derzeit schickt es nur den Request und schreibt die Response auf stdout.

Der Request kommt an, ich bekomme auch eine Response (Code 200, also ok).

Als URL habe ich einfach ein kleines PHP-Script, das die beiden übergebenen Parameter ausgeben soll.
Leider kommen die Parameter aber nicht an.
Ich möchte folgendes simulieren
<form action="http://localhost/test.php" method="post">
<div>
<input type="text" name="blabla" value="blubb">
<input type="text" name="laber" value="brabbel">
</div>
</form>

Wie genau muß denn der content aussehen?
Oder fehlt noch was im header?

Hier das Script:

#!perl -w
use strict;
use warnings;
use LWP;
use HTTP::Headers;
use HTTP::Request;

my $ua = new LWP::UserAgent;
$ua->agent("MudGuard/1.0");
my $content = "blabla=blubb\nlaber=brabbel\n";
my $contlen = length($content);

my $req = HTTP::Request->new("GET","http://localhost/testpost.php");

$req->header("content-length" => $contlen);
$req->header("content-type" => "application/x-www-form-urlencoded");
$req->header("content-encoding" => "iso-8859-1");

$req->content($content);

my $res = $ua->request($req);
print "HTTP Result code: ".$res->code."\n\n";
print $res->headers->as_string() if ($res->is_success);
print ($res->is_success ? $res->content : $res->message);

im Content habe ich anstelle des \n auch & und ; probiert - ohne Änderung am Ergebnis.

Was mache ich falsch? Was muß ich anders machen?

In RFCs 1945, 2068 und 2616 habe ich nichts brauchbares gefunden, wie ich die "Formulardaten" liefern muß.

Vielen Dank im Voraus!

Andreas