post daten übertragen / einloggen

Moin!
Frankylo hat gesagt.:
Mein jetziger Code wird später erst in mehrere Methoden gesplittet und sieht wie folgt aus:
Wenn du damit auch meinst, dass du die Reihenfolge der Codestücke änderst, da man ja schlecht einen Cookie setzen kann, bevor man ihn erhalten hat, sieht das ganze ja ganz gut aus.
Bin nun kein html oder javascript experte, aber in html sind die cookies doch alle normalerweise durch ein";" getrennt. Also musst du sie doch garnicht separat speichern, sondern einfach nur das ganze "Set-Cookie" Feld. Und dies sendest du dann auch wieder als ganzes mit setRequestProperty("Cookie",cookie);
Javascript setzt meines Wissens mittels "document.cookie = 'name=wert;'; " Cookies. Falls das passiert, musst du das Document halt danach scannen und an die restlichen Cookies dranhängen.

Hoffe mal das hilft weiter, da ich nicht so genau verstanden habe, worum es dir eigentlich geht.

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
Klar, die meisten Sachen sind mit Java pupseinfach hinzubieten, gerade weil Sun umfangreiche Packages/Classen mitliefert die einem das meiste abnehmen.
Bin ein Programmieranfänger, der erst wenige Wochen immer mal wieder sich mit verschiedenen Bereichen auseinandergesetzt hat.
java.net war nun mal ein praxisziel um überhaupt mal was zu machen, was für mich ein wenig sinn ergibt. Die Dokumentation sollte man gewiss lesen können, sonst braucht man gar nicht weitermachen und genau hier haperte es ein wenig.
Verbunden mit grundlegenden http-kenntnissen.
Beim httpclient von jakarta war ich der Meinung, d. es mit tomcat und co zutun hätte und wusste anfänglich gar nicht, wie ich sowas nutzen kann.
Ich hoffe sehr, d. ich in 4-8 Wochen genug Übung habe, um hier ein wenig selbstständiger zu arbeiten.
Auch hier vielen Dank, dass MeinerEiner_80 kompetent geantwortet hat und nicht nur auf die Manuals gezeigt hat.


Thx

Frank
 
Hallo!

So kann man sich ganz einfach an unserem Forum anmelden.
Java:
/**
 * 
 */
package de.tutorials;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * @author Thomas.Darimont
 * 
 */
public class CommonsHttpClientExample {

    /**
     * @param args
     * @throws IOException
     * @throws HttpException
     */
    public static void main(String[] args) throws Exception {

        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost("www.tutorials.de", 80, "http");
        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

        PostMethod postMethod = new PostMethod("/forum/login.php?do=login");
        postMethod.addParameter("vb_login_username", "XYZ");
        postMethod.addParameter("vb_login_password", "ABC");
        postMethod.addParameter("do", "login");
        postMethod.addParameter("s", "XXXXXXXXXXX");
        postMethod.addParameter("vb_login_md5password", "");
        postMethod.addParameter("vb_login_md5password_utf", "");

        client.executeMethod(postMethod);

        System.out.println(postMethod.getResponseBodyAsString());
    }
}

Da ist doch schon mal viel leichter verständlich als die Fummelei über eine HttpURLConnection... ;-)

Gruß Tom
 
Hallo Leute,

mal eine andere Frage, ich habe die Klassen in meiner NetBeans IDE umgesetzt, kann mir aber nichts dazu vorstellen. Was kann ich mit so einem HttpClient alles anfangen ?

Was bringt mir zb. die Java Klasse CommonsHttpClientExample ? Außer dass ich in meinem Output-Fenster den gesamten Inhalt ausgegeben bekomme.


Viele Grüße
Matze
 
Zuletzt bearbeitet:
Hallo!

So kann man sich ganz einfach an unserem Forum anmelden.
Java:
/**
 * 
 */
package de.tutorials;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * @author Thomas.Darimont
 * 
 */
public class CommonsHttpClientExample {

    /**
     * @param args
     * @throws IOException
     * @throws HttpException
     */
    public static void main(String[] args) throws Exception {

        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost("www.tutorials.de", 80, "http");
        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

        PostMethod postMethod = new PostMethod("/forum/login.php?do=login");
        postMethod.addParameter("vb_login_username", "XYZ");
        postMethod.addParameter("vb_login_password", "ABC");
        postMethod.addParameter("do", "login");
        postMethod.addParameter("s", "XXXXXXXXXXX");
        postMethod.addParameter("vb_login_md5password", "");
        postMethod.addParameter("vb_login_md5password_utf", "");

        client.executeMethod(postMethod);

        System.out.println(postMethod.getResponseBodyAsString());
    }
}

Da ist doch schon mal viel leichter verständlich als die Fummelei über eine HttpURLConnection... ;-)

Gruß Tom

Hallo,

ich habe versucht deinen Code für eine andere Seite anzupassen, komme aber nicht wirklich weiter. Die form sieht so aus:
HTML:
<form action="" method="post">
<table>
<tr>
<td align="center">
Benutzername:<br>
<input type="Text" name="userid" value="" style="width=110px;"><br>
Passwort:<br>
<input type="Password" name="passwort" value="" style="width=110px;"><br>
<input type="hidden" name="autologin" value="false"> <br><br>
<input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
</td>
</tr>
</table>

</form>

Den java code habe ich so angepasst:

Java:
...
PostMethod postMethod = new PostMethod("");

		postMethod.addParameter("userid", "XYZ");

		postMethod.addParameter("passwort", "ABC");

		client.executeMethod(postMethod);

		System.out.println(postMethod.getResponseBodyAsString());

Es wird aber nicht der Quelltext ausgegeben, als wäre ich eingeloggt. Lediglich der Username wird als value in die form eingetragen:
HTML:
<form action="" method="post">
<table>
<tr>
<td align="center">
Benutzername:<br>
<input type="Text" name="userid" value="Inskin" style="width=110px;"><br>
Passwort:<br>
<input type="Password" name="passwort" value="" style="width=110px;"><br>
<input type="hidden" name="autologin" value="false"> <br><br>
<input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
</td>
</tr>
</table>
</form>

Kann mir hier jemand weiterhelfen?
 
Zuletzt bearbeitet von einem Moderator:
Hallo..wollte diesen HTTPClient mal ausprobieren, aber ich bekomme es nicht hin die benötigten Klassen einzubinden.
In welches Verzeichniss müssen die Klassen, damit ich diese dann in meinem Code benutzen kann?

Hoffe mir kann jemand weiterhelfen!
 
Moin!
In welches Verzeichniss müssen die Klassen, damit ich diese dann in meinem Code benutzen kann?
In den Klassenpfad! Wenn du später ein jar Archiv hast, kannst du diesem im Manifest setzen. Oder du kannst(auch wenn du kein Archiv hast) , diesen explizit als Argument übergeben.
Wenn du keine Ahnung hast, wovon ich eben geredet habe, mache dich bitte ein wenig mit den Java Grundlagen vertraut. Insbesondere, was den Klassenpfad angeht... Google und Forumssuche helfen dabei..

*grüssle*
MeinerEiner
 
Zurück