Post-Request mit WWW::Mechanize
Görkem
- perl
Hallo zusammen,
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
Gegeben ist eine URL wie etwa http://abc.de/ACTION und ein String "ACTION=UPDATE&LANGUAGE=...etc.", der per Post an o.g. URL versendet werden soll.
Die o.g. erwartet ausdrücklich einen Post-Request.
Auf baldige Antwort freue ich mich natürlich.
Viele Grüße,
Görkem
Hallo,
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
WWW::Mechanize ist ein Wrapper, der auf HTTP::Request aufsetzt. Siehe also dortn.
Viele Grüße,
Hotte
Hi Hotte,
mit WWW::Mechanize->request($request) komme ich aber nicht weiter. Warum auch immer, im Moment funktionieren nur die WWW::Mechanize-Methoden. Ich bräuchte also ein Äquivalent zu HTTP::Request->content($content), ohne dass ich LWP::UserAgent, HTTP::Request oder HTTP::Response einsetzen muss.
Viele Grüße,
Görkem
Hallo,
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
WWW::Mechanize ist ein Wrapper, der auf HTTP::Request aufsetzt. Siehe also dortn.
Viele Grüße,
Hotte
Moin Moin!
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
Indem Du WWW::Mechanize auf ein Formular ansetzt, das als Method "POST" angegeben hat.
Alexander
Hi Alexander,
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.
Viele Grüße,
Görkem
Moin Moin!
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
Indem Du WWW::Mechanize auf ein Formular ansetzt, das als Method "POST" angegeben hat.
Alexander
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
Hallo Siechfred,
Danke vielmals für deine Unterstützung! Nun habe ich Variante 1 eingesetzt. In der entspr. CPAN-Modul-Doku steht ja leider nichts explizit davon, dass WWW::Mechanize eine post-Methode besitzt.
Viele Grüße,
Görkem
In der entspr. CPAN-Modul-Doku steht ja leider nichts explizit davon, dass WWW::Mechanize eine post-Methode besitzt.
„WWW::Mechanize is a proper subclass of LWP::UserAgent and you can also use any of LWP::UserAgent's methods.“
Siechfred
wie lässt sich mit WWW::Mechanize (nicht LWP::UserAgent!) ein Post-Request verschicken?
Verstehe ich nicht, WWW::Mechanize ist eine Instanz von LWP::UserAgent und lässt sich ohne das Modul überhaupt nicht einbinden. Du kannst also ohne Not die post-Methode aus LWP::UserAgent verwenden (für weitere Details siehe Thread auf perlmonks.org).
Siechfred
Herrlich ... die Hälfte der FAQ dreht sich um Javascript! :)
http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod#JavaScript
Herrlich ... die Hälfte der FAQ dreht sich um Javascript! :)
http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod#JavaScript
Ich weiß zwar nicht was du damit zum Ausdruck bringen möchtest, aber die "Hälfte" die du meinst, beschäftigt sich nur mit dem Thema, dass das Modul eben kein JS unterstützt und der Autor geht darauf gut ein, da er offensichtlich die Fragen kennt, im Prinzip bleibt von den vielen Fragen bezüglich JS, ja nur eine übrig "So what can I do?" die ausführlich beantwortet wird. Und selbst dort dreht sich die Frage nicht "um Javascript" sondern darum wo die Schwierigkeiten für das Modul sind um mit JS umgehen zu können.
Struppi.
Herrlich ... die Hälfte der FAQ dreht sich um Javascript! :)
http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod#JavaScript
Ich weiß zwar nicht was du damit zum Ausdruck bringen möchtest,
Eine Genervtheit des Autors die er mit lakonischer Nachhaltigkeit zum Ausdruck bringt!
im Prinzip bleibt von den vielen Fragen bezüglich JS, ja nur eine übrig "So what can I do?" die ausführlich beantwortet wird.
Eben, zusätzlich höchstens EIN diplomatisch formuliertes ...
"There isn't, there wasn't there (most likely) aint't never gonna be Javascript support"
... hätte logisch betrachtet auch gereicht.
Aber scheinbar nicht beim Gros seiner Clientel!
Ich finds (scheinbar alleine) sehr amüsant! :)
Grüße
Kurt
Ich finds (scheinbar alleine) sehr amüsant! :)
Mir war nicht klar worauf du hinaus wolltest.
Naja, ein bisschen ich auch, weil man sowas kennt, wenn "Experten" kommen und darauf rumreiten, sowas einfaches muss ja gehen, weil es hier und dort auch geht. Ohne zu erkennen was für ein Aufwand dahinter steht. Wie z.b. hier
Mein kleiner Firebug kann doch schon javascript in HTML umwandeln, oder vertu ich mich da.
Struppi.
Hi
z.b. hier
Mein kleiner Firebug kann doch schon javascript in HTML umwandeln, oder vertu ich mich da.
was mich jetzt wenigstens auf "Firebug" aufmerksam gemacht hat...
... und mich nun zu der Frage führt ob schon jemand die Funktionalitäten von WWW-Mechanize als empfehlenswertes Mozilla-PlugIn realisiert hat, weil man dann ja tatsächlich auch DHTML erfassen könnte.
Weiß da jmd was?
Grüße
Kurt
BUGREPORT: habe versehentlich Müll in das Feld URL eingetragen, sodass ich nicht posten konnte. Allerdings bekam ich keine sprechende Fehlermeldung und musste ne Zeitlang suchen.