Ilyas: LWP::UserAgent Script läuft nicht

Hallo Forum-User, Liebe Perl-Profis,
ich habe ein Problem das Folgende Perl-Script auf meinem Apache-Webserver zum laufen zu bringen. Wäre sehr dankbar, wenn jemand von euch dieses Script für mich korrigiert und als .pl-Datei zurückschickt.

#!c:/Perl/bin/perl -w

Create a user agent object

use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("Mozilla/4.7 [en] (WinNT; I) [Netscape]" . $ua->agent);

Create a request

my $req = new HTTP::Request POST => 'http://www.bigwhat1.com/search2.asp';
$req->content_type('application/x-www-form-urlencoded');
$req->content ('uquery=Testing&id=1555&start=0&scope=global&B1=Search');

Pass request to the user agent and get a response back

my $res = $ua->request($req);

Check the outcome of the response if ($res->is_success)

{
print $res->content;
}
else
{
print "Bad luck this time, because: ",$res->status_line,"\n";
print "Bad luck this time\n";
}

Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???

Die Web-Seite http://www.bigwhat1.com/ funktioniert im Moment nicht, Der Satz "Bad luck this time\n"; müsste dagegen aber in Erscheinung treten! Es kommt nur die Fehlermeldung " Internal Server Error".

Hier ein einfacheres Script mit dem Modul LWP::UserAgent, welches auch nicht bei mir läuft. Andere Scripte laufen unter meinem Apache-Webserver einwandfrei. Das Modul LWP ist auch in meiner Perlversion vorhanden. D.h. es müsste eigentlich laufen. Das Script habe ich mit dem normalen Editor unter Programme/Zubehör geschrieben.

#!c:/Perl/bin/perl -w

use LWP::UserAgent;

$url = 'http://www.yahoo.de/';

$agent = new LWP::UserAgent;
$request = HTTP::Request->new('GET', $url);
$result = $agent->request($request);
print $result->content();

Ich wünsche allen Lesern noch einen schönen Tag und vielen Dank für die jenigen, die versuchen mein Problem zu lösen. Drehe schon beinah am Rad:)

Viele Grüße
Ilyas

  1. Moin Moin !

    Wenn Du es unbedingt auf dem Server lassen willst, willst Du wahrscheinlich die CGI-Schnittstelle benutzen. Die notwendigen Header gibst Du aber nicht aus.

    Lies die Doku vom Modul CGI und benutze es.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
  2. Hi

    1. was steht den in Deinem error.log?

    2. Füge mal vor Deiner ersten Ausgabe

    print "Content-type: text/html\n\n";

    ein um wenigstens eine "vernüftige" Ausgabe im Browser zu bekommen
    (wenn Du schon nicht CGI.pm) nutzt).

    3. "http://www.bigwhat1.com" ist auch auf "normalem" Wege nicht erreichbar

    Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???

    Wird auf dem Server nicht gehen, da ein "unendlich" laufendes Script bestimmt nicht funzt (denke ich mir mal).

    Ansonsten eben eine Schleife mit einem Timeout - den Content in ein File speichern und anschließend per e-mail absenden (entsprechende Module (MIME::Lite: - hallo Philipp ;-) ) gibt es auf dem CPAN.

    Bye
    Timothy

    --
    Zwei Dinge im Leben kannst du nicht zurück holen. Den Pfeil, den du verschossen. Und das Wort, das du gesprochen.
    (alte indianische Weisheit)
    1. Halihallo timothy

      Ansonsten eben eine Schleife mit einem Timeout - den Content in ein File speichern und anschließend per e-mail absenden (entsprechende Module (MIME::Lite: - hallo Philipp ;-) ) gibt es auf dem CPAN.

      *grrrrrr* :-))  Feind hört mit! :-)

      Viele Grüsse

      Philipp

      1. Hi Philipp

        Feind hört mit! :-)

        Wusst ich's doch - nichts hat sich geändert ;-)

        "Lauschige" Grüsse
        Timothy

        --
        Zwei Dinge im Leben kannst du nicht zurück holen. Den Pfeil, den du verschossen. Und das Wort, das du gesprochen.
        (alte indianische Weisheit)
        1. Halihallo timothy

          Feind hört mit! :-)

          Wusst ich's doch - nichts hat sich geändert ;-)

          I wo, bloss nicht ernst nehmen ;-)
          Vielleicht gestattest du es, mich zu korrigieren: BB[1] is watching you :-)

          [1] 1984, George Orwell oder aus'm Fernsehen; Abk. f. Big Brother...
          Aber genug der doublethoughts...

          Viele Grüsse

          Philipp

          PS: Hatte das Posting nur per Zufall gelesen; musst dich also nicht beobachtet fühlen ;)

  3. Hi Ilyas,

    ich habe ein Problem das Folgende Perl-Script auf meinem Apache-Webserver zum laufen zu bringen.

    was hat Dein Skript überhaupt mit dem Apache-Server zu tun?

    Nichts an Deiner Aufgabenstellung impliziert HTTP als _Auslöser_ der Aktion - und gerade die 5-Minuten-Terrine, äh - Wiederholung würde ich mit cron lösen wollen.

    Streiche "CGI", setze "Perl via Kommandozeile".

    Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???

    Indem Du es alle 5 Minuten startest, das Ergebnis in eine Datei schreibst und nach jedem Programmstart eines E-Mail mit der Datei sendest ... will sagen: Ich würde das nicht _in_ diesem Skript lösen, sondern in seiner Ablaufsteuerung (und dazu siehe oben).

    Vermenge nicht zu viele Aufgaben miteinander. Ein System kleiner, handlicher, vielseitig einsetzbarer Skripte ist viel leichter zu beherrschen als ein undurchschaubarer Monolith.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.