Login auf einer Internetseite

mVn49er

Grünschnabel
Hallo liebe Community,

ich habe schon viele Fragen die mir in der Vergangenheit durch den Kopf kamen mit Hilfe von eurem Board beantworten können.
Jetzt bin ich allerdings bei einem Problem angekommen welches ich nirgends gut Dokumentiert gefunden habe.
Das kann natürlich auch an meine Schlüsselwörter für die Suche liegen.

Mein Problem ist nämlich, dass ich mich gerne bei einem Browsergame mit Hilfe von Java
einloggen möchte um dort gewisse Fortschritte usw. auslesen zu können und diese anzuzeigen.

Da ich meist mich mit der Oberfläche (GUI) von Programmen beschäftige
und in viele anderen Bereichen nur Grundkenntnisse habe bin ich hier relativ ratlos.

Was ich schon weiß, ist dass ich mit hilfe des HttpUrlConnection mein Problem angehen muss.

Den Header, der beim Login gesendet wird, habe ich mit Hilfe von LiveHTTPHeaders
mitgeschnitten und hier beigefügt, damit ihr genauer auf das Problem eingehen könnt.

Falls noch Informationen fehlen einfach bescheid sagen.

Ich sage schon mal danke im Voraus.

mVn49er

Code:
http://berlin.pennergame.de/login/check/

POST /login/check/ HTTP/1.1
Host: berlin.pennergame.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://pennergame.de/
Cookie: __uvpg=1251981560.06; __uvpgp=1251981580.29; __utma=109567510.1084383897.1251981580.1251981580.1251981580.1; __utmz=109567510.1251981580.1.1.utmcsr=pennergame.de|utmccn=(referral)|utmcmd=referral|utmcct=/
Content-Type: application/x-www-form-urlencoded
Content-Length: 119
username=xxxxxxxx&password=yyyyyyyy&city=http%3A%2F%2Fberlin.pennergame.de%2Flogin%2Fcheck%2F&submitForm=Login
HTTP/1.x 302 FOUND
Date: Thu, 03 Sep 2009 19:18:43 GMT
Server: Apache/2.2.11 (Ubuntu) mod_wsgi/2.3 Python/2.6.2
Vary: Cookie,Accept-Encoding
Set-Cookie: sessionid_bl_DE=77cc602bf7ea817e1015cc0faaa85ef7; Domain=.berlin.pennergame.de; expires=Fri, 04-Sep-2009 01:18:43 GMT; Max-Age=21600; Path=/
Location: http://berlin.pennergame.de/overview/?show_premium=true
Content-Encoding: gzip
Content-Length: 20
Connection: close
Content-Type: text/html; charset=utf-8
 
Also leider stell ich mich etwas doof an. Der angegebene Link hilft mir leider nicht wirklich weiter. Wie gesagt ich kenne mich mit http nicht wirklich aus. Könnte mir jemand etwas genauer erklären wie ich dabei vorgehen muss? Das wäre sehr nett.

Gruß mVn
 
Ein Encoder für die verschlüsselte Übertragung von Nutzer und Passwort:
Code:
import sun.misc.BASE64Encoder;


  /**
   * Encodes an given <code>String</code>
   * @param String <i>sSource</i> : the <code>String</code> to be encoded
   * @return <b>String</b> : encoded input
   */
  private static String encode( String sSource )
  {
    BASE64Encoder enc = new sun.misc.BASE64Encoder();
    return( enc.encode( sSource.getBytes() ) );
   }

Ein Code-Schnipsel zum Downloaden einer Datei:
Code:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

  // ...


    BufferedInputStream  is = null;
    BufferedOutputStream os = null;

    try
    {
      URL url = new URL( sHttpPath );
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod( "GET" );
      
      conn.setRequestProperty( "Authorization",
                               "Basic " + encode( sUser + ":" + sPassWord ) );

      conn.connect();
      int nResponseCode = conn.getResponseCode();
      if( HttpURLConnection.HTTP_OK == nResponseCode )
      {
        is = new BufferedInputStream( conn.getInputStream() );
        os = new BufferedOutputStream( new FileOutputStream( sDestination ) );
        int n;
        while( ( n = is.read( ) ) > -1)
        {
          os.write( n );
        }
      }
      else
      {
        throw new IllegalStateException( "HTTP response: " + nResponseCode );
      }

    }
    catch( MalformedURLException e )
    {
      // do anything
    }
    catch( IOException e )
    {
      // do anything
    }

  // ...

Vielleicht hilft das ja.
Shine On, Frank
 
Zurück