httpclient

jiim

Grünschnabel
Guten Tag,
ich versuche mich auf eine https:// webseite einzuloggen, dort dann verschiedene Posts auszuführen.
Es handelt sich um meinen Handy-anbieter. Ich will mich dort einloggen und dann sms versenden... Nun das Login funktioniert. Ich erhalte dann die website mit meinem namen. Jedoch das versenden nicht. ich denke es liegt an den cookies.

Weil wenn ich die verschiedene postmethods ausführe, lese ich die cookies aus und jedesmal gibt es mir eine andere sessionid zurück. aber wenn ich mich eingeloggt habe sollte doch das cookie bestehen bleiben. Nun meine frage wie kann ich machen, dass für alle posts (insgesamt 3) das cookie bestehen bleibt und es nicht immer wieder ein neues erstellt?

Code:
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost("www.providerlink.de", 443, "https");
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

PostMethod post = new PostMethod("/paht/zum/link/");
PostMethod post2 = new PostMethod("/path/zum/2/link/");

//danach setze ich die Parameter (Beispielsweise natelnummer und text)
post.addParameter("Nr", "lala");
post.addParameter("Text", "lala");
client.executeMethod(post);
Cookie [] initcookies = client.getState().getCookies();

        for (final Cookie c : initcookies) {
            System.out.println("COOOOKIEEE " + c.toString());
        }
post.releaseConnection();

//das selbe für post 2... 
post2.addParameter("Beispiel2", "lala");
client.executeMethod(post2);
Cookie [] initcookies = client.getState().getCookies();

        for (final Cookie c : initcookies) {
            System.out.println("COOOOKIEEE " + c.toString());
        }
post2.releaseConnection();

Nun das problem ist, ich erhalte jetzt verschiedene cookies.. dort drin vorallem die sessionid ist verschieden. Ich denke dass sollte immer gleich sein..
aber wie mach ich das?

kann mir jemand helfen?

vielen Dank
 
Schoneinmal probiert mit diversen Tools (Tamper Data, Ethereal) einen normal Ablauf mitzuloggen?

Dann siehst du ja, wie es aussehen sollte.
 
ja ich habs geloggt, damit ich weis was ich der website übergeben muss..

ich glaub ich brauch einfach das selbe cookie.. im programm ändert dieses aber..
 
Naja, dann siehst du ja welche Cookies (und vor allem wie) dein Browser an den Server sendet und welche Cookies in deinem Request enthalten sind.
 
hmm,
ich hab jetzt herausgefunden dass mir 1 cookie fehlt. ich denke es liegt an dem, dass es nicht funktioniert...

ich hab die cookies so gesetzt:
client.getParams().setCookiePolicy(CookiePolicy.DEFAULT);

somit sendet es alle cookies, bis auf eines. (im gegensatz wenn ich es über den browser mache)....
die JSession Cookie fehlt..

weiss jemand an was das liegen könnte? oder wie kann ich dieses einte cookie noch hinzufügen?
 
Zuletzt bearbeitet:
Zurück