get($url) -> aufgerufene Seite erstellt Cookie
Steffen Wawryniuk
- perl
Hallo Forumsgemeinde,
ich will per Perl eine Seite eines Anderen Servers auslesen
my $url = 'http://www.server.net/einscript.asp';
my $doc = get ($url) || &error($url);
jedoch will das Aufzurufende Script nen Cookie erstellen und überprüft des auch... und wenn es keinen Cookie erstellen konnte verweist das aufgerufene Script auf eine Fehlerseite und nicht die eigentliche seite auf die ich will
Gibt es hier ne möglichkeit das ich Den Cookie der erstellt werden soll über mein Script weiterleite an den Browser das es da erstellt werden kann (also des wird sicherlich net gehn... aber irgendwie sowas ähnliches)
so das ich an die Seite rankomme an die ich eigentlich wollte...
Ich hoffe Ihr versteht mein Problem.
Gruß
Steffen
Gibt es hier ne möglichkeit das ich Den Cookie der erstellt werden soll über mein Script weiterleite an den Browser das es da erstellt werden kann (also des wird sicherlich net gehn... aber irgendwie sowas ähnliches)
so das ich an die Seite rankomme an die ich eigentlich wollte...
Ja, aber nicht mit LWP::Simple, dazu brauchst du z.b. LWP::UserAgent. Les mal in der Doku wie's geht.
Struppi.
Halihallo Steffen
jedoch will das Aufzurufende Script nen Cookie erstellen und überprüft des auch... und wenn es keinen Cookie erstellen konnte verweist das aufgerufene Script auf eine Fehlerseite und nicht die eigentliche seite auf die ich will
Gibt es hier ne möglichkeit das ich Den Cookie der erstellt werden soll über mein Script weiterleite an den Browser das es da erstellt werden kann (also des wird sicherlich net gehn... aber irgendwie sowas ähnliches)
so das ich an die Seite rankomme an die ich eigentlich wollte...
Das geht IMHO nicht über LWP::Simple. LWP::Simple ist eben nur für ein simples get
zu gebrauchen, wie der Name schon sagt. Für Cookies und Authentication verwendet man
LWP::UserAgent => HTTP::Request.
lies dich hier ein:
perldoc lwpcook
perldoc LWP::UserAgent
Viele Grüsse
Philipp
Hallo,
erstemal Danke an Euch beiden...
ich hab mir die Docus angeschaut und auchmal so per google gesucht.
Ich bin ein großes Stück weiter
Ich logge mich also nun per url in der Username und PW drin sind auf dem Server ein und er erstellt einen Cookie und gibt eigentlich eine Korrekte seite zurück...
jedoch will ich ohne diese am bildschirm austzugeben gleich eine nächste Seite aufrufen zu der dieser Cookie nötig ist...
jedoch bekomm ich das einfach nicht hin...
ich stell mal kurz das Script hier dar...
Evtl. kann mir ja doch nochmal wer helfen.
==================
my $url = 'http://www.server.com/logon.asp?user=user&password=pass';
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "cookie.txt", autosave => 1));
$ua->agent( "Explorer" );
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
#Hier bin ich angemeldet und Cookie is eigentlich da
$url = 'http://www.server.com/status.asp';
$request = HTTP::Request->new(GET => $url);
$response = $ua->request($request);
my $content = $response->content();
print "Content-type: text/plain\n\n";
print "$content";
exit;
=================================0
Danke & Gruss
Steffen
Halihallo Steffen
jedoch will ich ohne diese am bildschirm austzugeben gleich eine nächste Seite aufrufen zu der dieser Cookie nötig ist...
Du sagst es ja selber, auf dieser Seite wird der Cookie benötigt, aber du sendest keinen
mehr; das führt dann zur Fehlermeldung.
$ua->cookie_jar(HTTP::Cookies->new(file => "cookie.txt", autosave => 1));
$ua->agent( "Explorer" );
Cookie wird gesendet, OK.
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);jedoch erscheint hier wieder das ich nicht eingeloggt bin
my $content = $response->content();
print "Content-type: text/plain\n\n";
print "$content";
Content wird ausgegeben, OK.
Aber: Beim zweiten Request _musst_ du den Cookie _nochmals_ senden.
Viele Grüsse
Philipp