New Forum Topic mit java (httpclient) erstellen

Jigga87

Grünschnabel
hey leute,also die überschrift verrät euch ja schon so ziehmlich alles.ich möchte mich in ein forum einloggen(das funktioniert sogar schon) und dort in einem bestimmten unterforum ein neues thema erstellen.
Ich habe mir das ganze mit live httpheaders angeschaut und so alles rausgefiltert,was an feldern asugefüllt und gesendet werden muss.das habe ich dann in eine "MultipartEntity"
reinegpackt und versucht an die seite "http://beispiel.de/forum/unterforum/forum.posting/"
zu senden.Jedoch passiert da rein gar nichts.
Muss ich vll. irgendwas noch mit den cookies anstellen,sie mitsenden oder ähnliches?

oder habt ihr evtl ganz andere ideen,wie ich die idee realisieren kann?dann nur her damit :)

PS:Und nein, das ist von den Betreibern des Forums nicht vorboten,weil es ein Tool werden soll,dass einen gewissen Vorgang für alle erleichtern soll ;)
Das forum ist überinges ein phpBB von http://www.forumotion.com/
 
Hey,ok hier ist die Klasse mit dem login + anschließendem Forum thread versuch.
Java:
public class ClientFormLogin {

	//hier stehen noch die nötigen variablen,die ich rausgekürzt habe

	public static void main(String[] args) throws Exception {

		DefaultHttpClient httpclient = new DefaultHttpClient();

		HttpGet httpget = new HttpGet(
				"http://edhlr.forums-free.ca/login.forum?connexion/");

		HttpResponse response = httpclient.execute(httpget);
		HttpEntity entity = response.getEntity();

		System.out.println("Login form get: " + response.getStatusLine());
		if (entity != null) {
			entity.consumeContent();
		}
		System.out.println("Initial set of cookies:");
		List<Cookie> cookies = httpclient.getCookieStore().getCookies();
		if (cookies.isEmpty()) {
			System.out.println("None");
		} else {
			for (int i = 0; i < cookies.size(); i++) {
				System.out.println("- " + cookies.get(i).toString());
			}
		}

		HttpPost httpost = new HttpPost(
				"http://edhlr.forums-free.ca/login.forum?connexion/");

		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
		nvps.add(new BasicNameValuePair("username", "muster"));
		nvps.add(new BasicNameValuePair("password", "123456"));
		nvps.add(new BasicNameValuePair("redirect", ""));
		nvps.add(new BasicNameValuePair("query", ""));
		nvps.add(new BasicNameValuePair("login", "Log+in"));

		httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

		response = httpclient.execute(httpost);
		entity = response.getEntity();

		System.out.println("Login form get: " + response.getStatusLine());
		if (entity != null) {
			entity.consumeContent();
		}

                //Die logon cookies werden hier korrekt ausgegeben
		System.out.println("Post logon cookies:");
		cookies = httpclient.getCookieStore().getCookies();
		if (cookies.isEmpty()) {
			System.out.println("None");
		} else {
			for (int i = 0; i < cookies.size(); i++) {
				System.out.println("- " + cookies.get(i).toString());
			}
		}
		
                //Hier werden die daten für den thread festgelegt
                // "nul" steht für die zahl "0",die vorher mit von int zu einem String in die variable eingelesen wird.
		final MultipartEntity mpe = new MultipartEntity(
				HttpMultipartMode.BROWSER_COMPATIBLE);
		mpe.addPart("subject", new StringBody("threadName"));
		mpe.addPart("topic_color", new StringBody(""));
		mpe.addPart("message", new StringBody("banRequest"));
		mpe.addPart("lt", new StringBody(nul));
		mpe.addPart("mode", new StringBody("newtopic"));
		mpe.addPart("f", new StringBody(hlrID));
		mpe.addPart("post", new StringBody("Send"));
		mpe.addPart("notify", new StringBody("on"));
		mpe.addPart("poll_title", new StringBody(""));
		mpe.addPart("poll_option_text", new StringBody("on"));
		mpe.addPart("poll_length", new StringBody(""));
		mpe.addPart("poll_miltiple", new StringBody(nul));
		mpe.addPart("poll_cancel_vote", new StringBody(nul));
		//Diese beiden Felder sind am ende vom POST in livehttpheaders,
               //jedoch weiß ich noch nicht so recht,was hier rein soll.
               //Es ist eine buchstaben und zahlen folge,die sich immer unterscheidet!
               //Die SID ist es auch nicht.
               mpe.addPart("auth[]",
				new StringBody(""));
		mpe.addPart("auth[]",
				new StringBody(""));

                //Die URL zu der "new Topic" seite
		final HttpPost httpPost = new HttpPost(
				"http://edhlr.forums-free.ca/post.forum?mode=newtopic&f=11/");
		httpPost.setEntity(mpe);

		response = new DefaultHttpClient().execute(httpPost);

	}
}
 
Zuletzt bearbeitet von einem Moderator:
Hi,
hast du dich überhaupt schonmal anmelden können? Auf den ersten Blick sieht deine Authentifizierung nicht so aus, wie bei Commons beschrieben: http://hc.apache.org/httpclient-3.x/authentication.html.

Grüße
Peter

hey,danke schon mal für die antwort.
Am ende des logins kriege ich aber schon die cookie werte mit session ID usw.deswegen habe ich angenommen,dass die anmeldung funktioniert.gibt es da noch wege,das ganze einfach zu testen um sicher zu gehen?
 
Zurück