Siechfred: Post-Request mit WWW::Mechanize

Beitrag lesen

ich wünschte, diese Möglichkeit würde sich bieten, allerdings ist es ja kein Formular, das gepostet werden soll. Mir steht nur die URI (wie etwa http://abc.de/action/) und ein content-String (action=update&language=...etc.) zu Verfügung. Die URI enthält also kein Formular, wenn ich sie ohne den content-String aufrufe, erhalte ich eine Fehlermeldung, das ist aber kein HTTP-Statuscode.

So schwer ist das nun wirklich nicht:

use WWW::Mechanize;  
  
my $mech = WWW::Mechanize->new;  
my $url = 'http://example.org/some_script.pl';  
my $response = $mech->post($url, [ 'field_1' => 'Content', 'field_2' => 'More content' ]);  
print $response->content if $response->is_success;

Oder über Alexanders Weg:

my $mech = WWW::Mechanize->new;  
my $url = 'http://example.org/seite_mit_formular.html';  
$mech->get($url);  
my $res = $mech->submit_form( form_number => 1,  
                              fields      => { 'field_1' => 'Content',  
                                               'field_2' => 'More Content' }  
                            );  
print $res->content if $res->is_success;

Variante 2 setzt natürlich eine HTML-Seite mit einem existierenden Formular voraus, während Variante 1 einen simplen POST-Request absetzt, wie in LWP::UserAgent vorgesehen.

Siechfred

--
Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.