Thomas Winkler: POST Events automatisieren?

Gibt es eine Möglichkeit ein POST Event (idealerweise aus einem Perl oder Shell Script heraus) automatisch zu senden? Soll heissen: Ein Perl CGI-Script auf einem Server (dessen Position, Name und notwendigen Parameter seien bekannt) erwartet Daten in Form eines POST Events. Nun will ich aber nicht jedesmal eine Form ausfüllen, sondern die ganze Sache automatisieren. Wie könnte das gehen?

Danke,
Thomas

  1. Hallo Thomas

    Gibt es eine Möglichkeit ein POST Event (idealerweise aus einem Perl oder Shell Script heraus) automatisch zu senden?

    Ja, du kannst folgenden Perl-Code dazu verwenden. Du musst nur die Variablen $query und $url richtig setzen und dann sollte der Request automatisch durchgeführt werden.

    Gruss
    Andreas

    --------------------
    $query = &query($name[0],$value[0],$name[1],$value[1],$name[2],$value[2]);
    $url = 'http://www.domain.ch/cgi-bin/script.cgi';

    use LWP::UserAgent;
    $ua = new LWP::UserAgent;
    $req = HTTP::Request->new(POST,$url);
    $req->content_type('application/x-www-form-urlencoded');
    $req->content($query);
    $res = $ua->request($req);

    sub query
    {
    my $query;
    while(@_)
    {
    my $name = shift(@_);
    my $value = shift(@_);
    $name =~ s/([^ a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
    $name =~ tr/ /+/;
    $value =~ s/([^ a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
    $value =~ tr/ /+/;
    $query .= "$name=$value&";
    }
    chop($query);
    return $query;
    }