ich schreibe an einem Programm (Betriebssystemunabhängig),
das eine Verbindung über TCP/IP mit einer HTTP-Seite herstellen und diese auslesen soll.
Mein Problem ist, dass ich jedes Mal den Code 302 bekomme, mit der Mitteilung, dass die Seite an einer anderen Stelle ist und einem Link der auf genau die Seite zeigt, zu der ich die Verbindung aufgebaut habe.
Ich habe verschiedene Seiten durchprobiert (am meisten www.google.de) und noch nicht herausgefunden, wie ich an den html-Text komme, der bei der gewählten Url im Browser auftaucht.
Kann mir jemand sagen, was ich falsch mache, oder vergessen habe?
Ich übergebe bei der Verbindung nur „GET $host HTTP/1.0“
danke für die Antwort, aber das war eigentlich was ich mit dem $ ausdrücken wollte.
Als Pfad habe ich / , /index.html und ähnliches angegeben und wenn ich zB die /index.html abfrage, bekomme ich besagten 302-Code mit Hinweis auf die Seite /index.html
Ich möchte aber zu der Seite, die mir auch im Browser letztendlich angezeigt wird
Als Pfad habe ich / , /index.html und ähnliches angegeben und
wenn ich zB die /index.html abfrage, bekomme ich besagten
302-Code mit Hinweis auf die Seite /index.html
bist du sicher, dass du nicht einen Redirect auf die Seite „http s ://…/index.html“ bekommst; das wäre ein typischer Fall. Was genau steht im Location-Header? Ansonsten habe ich schon schlimme Seiten gesehen, in denen man in eine solche Endlosschleife gerät, sofern man keine Cookies unterstützt.
Andreas
PS: Warum machst du dir die Mühe, selbst einen HTTP-Client zu schreiben? Dafür gibt es robuste Bibliotheken zuhauf.
danke für die Antwort, aber das war eigentlich was ich mit dem
$ ausdrücken wollte.
Und wie uebergibst du den hostname?
Wenn auf einer IP mehrere name based virtual hosts liegen, musst du den hostname mit angeben, damit der Server weiss, welchen du ansprichst.
Als Pfad habe ich / , /index.html und ähnliches angegeben und
wenn ich zB die /index.html abfrage, bekomme ich besagten
302-Code mit Hinweis auf die Seite /index.html
Ich möchte aber zu der Seite, die mir auch im Browser
letztendlich angezeigt wird
Da kann ich mich nur dem Tipp anschliessen, eine fertige Bibliothek fuer sowas zu nehmen: wget auf der Kommandozeile, curl als Bibliothek, fuer Perl gibts LWP::Simple, usw.
das mit den Cookies ist ein interessanter Aspekt, über den ich noch garnicht nachgedacht habe
kann ich mir aber nicht vorstellen, da wget zB von sich aus keine Cookies sendet (afaik) und dadrüber bekomme ich die normale Seite ausgegeben
aber vielen dank für die Hinweise, ich werd mal sehen, wo ich weiterkomme