StudiVz anmelden per Java!

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi Leute. Hab per Suchfunktion leider nichts gefunden :/

Ich würde mich gern bei StudiVz über Java anmelden um dann später per Java Auswertungen durchführen zu können. (Ich weiß, solche Programme gibts schon, aber will das einfach mal selbst machen, um ein wenig besser die Programmiersprache verstehen zu können 🙂

Also mein Quelltext sieht bisher so aus:


Code:
//Imports

import java.io.IOException;
import javax.servlet.http.HttpServlet;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

public class Connection extends HttpServlet{
      
    public Connection() throws IOException, HttpException {
        Daten_Get();
    }
    
public static void main(String[] args) throws HttpException, IOException {
    
new Connection();

}



    private void Daten_Get() throws IOException, HttpException {
       

        HttpClient client = new HttpClient();
        String url = "https://secure.studivz.net/Login";
        PostMethod post = new PostMethod(url);
        
        
        client.getHostConfiguration().setHost(url,
        443, "https");


        
        post.addParameter("Login_email", "email");
        post.addParameter("Login_password", "pass");

        
        
       
        int httpStatusCode = client.executeMethod(post);
        
        
        String response = post.getResponseBodyAsString();
        

        System.out.println(response);
        

    }
}

Zum Schluss gebe ich einfach nur den ankommenden Quelltext aus, dem ich aber entnehmen kann, dass da irgendwas nicht richtig lief :/ Was mache ich falsch? Für GMX würde das auch nicht funktionieren. Müsste man das iwie noch mit Get abfangen oder so?
Ich hab keine Ahnung 🙁
Bitte um Antowrten 🙂

Danke
 
1. wieso erbst du von HttpServlet???
2. lass dir mal den status code ausgeben und schau was der Code bedeutet
 
1. Du lässt das ganze ja nicht in einem Servlet Container laufen (Tomcat usw.), deshalb sollte die Klasse nicht von HttpServlet erben..

2. Im Formular sehe ich da noch weitere, vielleicht benötigte input fields, wie z.B. "formkey" und "iv".. Diese werden ggf. auch gebraucht..
 
Achso ja...

Ich wollte das auch alles über ein Servlet laufen lassen, bzw damit rumspielen. Hab das nicht mehr geändert.
😉

Also wenn ic das darüber mache kommen diese typischen Studi Nachrichten:

"Ups. Das hat nicht ganz geklappt" etc.

Also theoretisch müsste das ja soweit geklappt haben. Sonst würde da ja stehen, dass der Login an sic nicht funktioniert hat?!
 
Wie ich sehe liegt es wohl wirklich an diesem Formkey etc! 🙂

Aber:

Wenn ich da jetzt weiter eintrag:

Code:
post.addParameter("formkey", "910105e5598f54061b01fcb5bfb1b0a3b1cc680a95c3aee61713113f4477091fabcbfd860071ff2dad6bde476b17edf41682adfd0aba04eaa4a027368d816fa2646bc007a3f7cbdb25c70106e4b5b14901b7215e6fdd9f8887b8e3e8eed4a287");

Bringt das auch nicht viel. Weil sich dieser Key immer verändert. Wie kann man sowas denn am besten auslesen direkt? Damit man als Value auch direkt richtig übergibt?!

Ich weiß. Dumme Fragen 😀...Bin noch nicht so bewandert in dem Gebiet 🙁
 
Dieser Formkey wird wahrscheinlich mit deiner SessionId verknüpft, daher wirst du wohl nicht um sowas in der Art herumkommen..

Http-Connection aufbauen zu studivz.net, in der geliferten Seite steckt ja der Formkey drin... -> Auslesen und dann entsprechend einloggen..
 
Ok ... klingt plausibel.

Wie genau stelle ich das denn an? ???:L :bahnhof:

Muss man dann in dem falle nicht ein "servlet" erstellen?

Bzw. kann mir vielleicht jemand einen BeispielCode zeigen. Weil die Sachen die ich über Google finde bringen mir leider recht wenig in diesem Falle.
 
ich würd ja sagen du machst erstmal ein get auf die login-Seite und holst dir den formkey da raus.
 
Hi.

Danke für die Antworten 🙂

Sitz hier grad in der Schule. Müsste dann als Quelltext ja dann so sein, oder :


Code:
GetMethod get = new GetMethod("https://secure.studivz.net/Login");
        
InputStream in = get.getResponseBodyAsStream();

get.releaseConnection();

Ja und dann les ich ja einfach den Formkey da aus? Bzw wie genau mach ich das?
 
Also:

So weit geht das.
Hab die Variablen ausgelesen. Was auch funktioniert. 🙂

Aber:

Ich kann mich trotzdem nicht anmelden, weil die ID sich verändert wenn ich


Code:
client.executeMethod(post);

starte.
Weil dann logischerweise wieder einen neuen formkey geladen bekomme der nicht mit dem zuvor ausgelesenen übereinstimmt.

Was kann man da machen?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben