You are not logged in.

  • Login

1

Monday, February 15th 2010, 12:08pm

Mit Java auf Internet Seiten zugreifen

Hallo, ich habe die Basics von Java soweit verstanden würde ich sagen und möchte jetzt ein kleines Programm schreiben, mit dem ich mich auf einer Seite einloggen kann, um bestimmte Aktionen etwas einfacher ausführen zu können.
Wie geht das mit Java ?

2

Monday, February 15th 2010, 12:15pm

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.

3

Monday, February 15th 2010, 12:23pm

Ich möchte das Programm für www.comunio.de schreiben. Ich möchte dann auch mit dem Programm ein paar Aktionen ausführen können, d.h. ich würde auch gerne wissen, wie ich Links folge oder Daten aus zum Beispiel Tabellen sammeln kann.

4

Monday, February 15th 2010, 1:00pm

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.

Source code

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

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.

5

Monday, February 15th 2010, 1:09pm

Danke für die Antwort. Ok, da muss ich mich wirklich erstmal einlesen ! ?( :)

Edit: Damit ich nicht zu sehr im Dunkeln tappe, was denkst du sollte ich schon alles können, um das zu verstehen ?

This post has been edited 1 times, last edit by "jMoo" (Feb 15th 2010, 1:17pm)


6

Monday, February 15th 2010, 1:48pm

Quoted

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 HTTP 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.

7

Monday, February 15th 2010, 7:15pm

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. http://hc.apache.org/httpcomponents-core…re-tutorial.pdf

Similar threads

Social bookmarks