Mit Java auf Internet Seiten zugreifen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Es kommt ganz drauf an, wie die Authentifizierung der Seite gestaltet ist. Ist es z. Bsp. htaccess, so kannst du dich direkt im link mittels http://user:passwort@example.com/seite anmelden. Ist es ein normales HTML-Formular, so werden die Daten normalerweise an eine PHP-Datei in der HTTP-Request gesendet. Du müsstest in diesem Fall einen HTTP-Request erstellen, welcher den Benutzernamen und das Passwort als Daten mitsendet. Das lässt sich aber nicht generisch gestalten, da es von den Feldnamen des Login-Formulars abhängt. Der eine vermutet den Benutzername im Feld "user", der andere im Feld "benutzer" und wieder ein anderer im Feld "benutzername", ... Also eine Lösung für alles wirst du nicht bauen könenn. Schreibe am besten mal, auf welcher Seite du dich authentifizieren möchtest.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Indem ich das Login-Formular einfach auf eine von mir erstellte Seite umgeleitet habe, konnte ich die Werte auslesen, die normalerweise an die PHP-Datei gesendet werden, welche sich um den Login kümmert.

    Quellcode

    1. array(4) {
    2. ["login"]=>
    3. string(4) "test"
    4. ["pass"]=>
    5. string(3) "hui"
    6. ["action"]=>
    7. string(5) "login"
    8. [">>_Login_x"]=>
    9. string(2) "33"
    10. }

    Jetzt kennst du die Werte, welche du bei einem HTTP-Request an die Datei login.phtml senden musst. Diese wird nämlich aufgerufen, wenn du das Formular absendest.
    Nun zu den Daten, die du per POST senden musst:
    login und pass sollten selbsterklärend sein. action und >>Login_x können weggelassen werden. Zumindest trat bei mir dann kein Fehler auf. Aber ich würde es sicherheitshalber empfehlen diese Werte immer mitzugeben.
    Nun, da du weißt, welche Daten login.phtml erwartet, musst du ein Programm erstellen, welche eine Anfrage an diese Datei sendet. Wichtig dabei ist, dass die oben erwähnten Datei bereits in der Anfrage enthalten sind.
    Eine Anleitung zum Erstellen einer HTTP-Request findest du hier: http://java.sun.com/docs/books/tutorial/networking/urls/index.html
    Wenn du das erfolgreich programmiert hast, können wir nach dem Rest schauen.

    EDIT:
    Ich weiß nicht, wie sehr du dich mit HTTP auskennst, evtl. solltest du dich in das Thema ein bisschen einlesen, damit du alles nachvollziehen kannst.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Damit ich nicht zu sehr im Dunkeln tappe, was denkst du sollte ich schon alles können, um das zu verstehen ?

    Also erst einmal solltest du dir, wie oben erwäht, Grundwissen zum Thema HTTP aneignen. Ich glaube, ich habe damals einen großen Teil bei [wikipedia]HTTP[/wikipedia] herausfinden können. Dann solltest du dich weiter informieren, welche Klasen du benötigt, um eine HTTP-Verbindung in Java aufzubauen. Soweit ich weißt, sollten sich diese unterhalb von java.net befinden. Informationsmaterial zum Aufbauen einer HTTP-Verbindung in Java gibts bestimmt haufenweise bei Google und evtl. sogar direkt bei Sun in der Java Dokumentation.
    Wenn du das alles gemacht hast, dann sollte der Login nicht mehr weit entfernt sein.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Die Themen, üner die du dich infmieren solltest, wie Deadman schon geschrieben hatte:

    Auf der Grundlagenseite:
    1. HTTP
    2. HTTP-Get, HTTP-Post

    Für Java gibt es dafür ein Super-Library mit der man ziemlich einfach HTTP-Requests stellen kann, dafür solltest du aber wie gesagt die Grundlagen in der Thematik kennen, sonst wird der Einsteig recht schwer!
    3. hc.apache.org/httpcomponents-c…pdf/httpcore-tutorial.pdf