# Mit Java auf einer Website einloggen



## ProgrammierGenie (22. Mrz 2005)

Hallo,
Folgende Methode gibt mir den Quelltext einer HTML-Seite aus.


```
BufferedReader URLinput;
    String line;
    try{
      URL url = new URL("test.htm");

      HttpURLConnection http = (HttpURLConnection) url.openConnection();

      http.setDoInput(true);
      http.setDoOutput(true);
      http.setUseCaches(false);
      http.setRequestMethod("POST");
      http.connect();

      URLinput = new BufferedReader(new InputStreamReader(http.getInputStream()));
      String alles = "";
      while ( (line = URLinput.readLine()) != null) {
        System.out.println(line);
      }
    } catch(IOException e){}
```

Dies ist die HTML-Seite, deren Code mir ausgegeben wird.


```
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <form method=post>
      <table border=0>
	<tr> 
	  <td>[b]User name:[/b]</td>
	  <td><input type=text name=username></td>
	</tr>
	<tr> 
	  <td>[b]Password:[/b]</td>
	  <td><input type=password name=password></td>
	</tr>
	<tr> 
	  <td colspan=2 nowrap>
	    <input type=submit value="Login" name="submit">
	  </td>
	</tr>
      </table>
    </form>
  </body>
</html>
```

Wie kann ich mich auf der Seite einloggen und den Quelltext anzeigen von der Seite die nach dem Login kommt?
Bitte helft mir


----------



## Campino (22. Mrz 2005)

Du musst das Passwort und den username als post-Parameter übergeben. In den Klassen URLConection, URL und HttpURLConnection hab ich nichts gefunden. Vielleicht suchst du mal in der API...


----------



## Gast (26. Mrz 2005)

Hoi,

Habe selber noch nicht viel Erfahrung mit Java. Aber übergibt man die Parameter nicht  mit der URL ?


```
URL url = new URL("test.htm?username=deinname&password=deinpw");
```

Wobei in Deinem Passwort und Namen keine Sonderzeichen vorkommen dürfen sonst muss Du diese noch nach UTF8-Zeichensatz konventieren.


----------



## minzel (19. Nov 2005)

Gibt es hier vieleicht neue erkenntnisse? Hänge ebenfalls am selbigen Problem und weiß nicht wo ich ansetzen soll.


----------



## Campino (19. Nov 2005)

also:
in der url kann man vermutlich nicht übergeben: http unterscheidet zwischen GET-Parametern, die in der URL übergeben werden und POST Parametern, die so mitgschickt wrden, wenn der Programmierer der Seite "gut" gearbeitet hat liest er nicht irgendwelche parameter aus sondern die POST-Parameter, die an der URL ignoriert er einfach.


Sieh dir mal die Jakarta-Tools an, die Stellen Klassen bereit mit denen man auch POST-Parameter übergeben kann.


----------



## Stier (1. Dez 2005)

in dem Html Formular sehe ich kein  <form Action="http://www.irgendwas.de"

wenn die Addresse bekannt ist kannst du direkt an die Adresse senden. Etwa so:
	
	
	
	





```
String postData = "name=Wurst&vorname=Hans";
URL irgendwasUrl = new URL("http://www.irgendwas.de");
URLConnection connection = irgendwasUrl .openConnection();
connection.setDoOutput(true); // HTTP POST verwenden!
PrintWriter out = new PrintWriter(
connection.getOutputStream(), true);
out.println(postData); // Daten der Post-Nachricht
out.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
// Antwort des Servers von "in" lesen...
```

Das sollte funktionieren


----------



## Slava (3. Dez 2005)

und am ende, wenn der seitenscript kontrolliert von welche seite du kommst, oder hängt session variablen ein, war ganze arbeit umsonst.


----------

