# HttpClient Post, Get Cookie



## dayaftereh (18. Jun 2009)

Hallo

Ich bin gerade an HttpClient von Apache und möchte mich bei dem BrowserGame knightfight.de einloggen. Dazu habe ich mal mit dem „Live Header“ von FireFox geschaut wie der Request verschickt wird. Es wird eine POSR Request mit 4 Variablen an die index.php verschickt. Das habe ich dann nachgebaut. Aber jetzt kommt mein Problem, der Login Funktioniert, das merke ich daran wenn ich mir den ResponsBody ausgeben lasse, weil der ist genau gleich wie wenn ich mit FireFox den Quellcode holle, doch jetzt will ich auf eine Link Klicken der so aussieht: KnightFight - Server 5. Ich habe geschaut der Link wird mit GET Request zum Server geschickt, doch wenn ich die GetMethode von HttpClient nehme, dann lade ich wieder bei dem Login. Also glaube ich, dass der Cookie nicht richtig mit geschickt wird oder ich irgendwas anderes falsch mache. 

Hier mein Code:

```
package de.lana.runner;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.log4j.Logger;

public class Runner {

	private static Logger log = Logger.getLogger(Runner.class);

	public static void main(String[] args) throws IOException {
		HttpClient client = new HttpClient();

		PostMethod post = new PostMethod("http://spielwelt5.knightfight.de/index.php");
		post.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

		NameValuePair[] data = { 
				new NameValuePair("user", "****"), 
				new NameValuePair("password", "****"),
				new NameValuePair("ac", "status"), 
				new NameValuePair("server", "http://spielwelt5.knightfight.de/?ac=loginpage") };

		post.setRequestBody(data);

		client.executeMethod(post);
		
		//System.out.println(post.getResponseBodyAsString());

		post.releaseConnection();

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {

			e.printStackTrace();
		}

		log.debug("-----------------------------------------------------------");

		GetMethod get = new GetMethod("http://spielwelt5.knightfight.de/");
		get.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

		NameValuePair[] data1 = { 
				new NameValuePair("ac", "raubzug") 
				};
		
		get.setQueryString(data1);
		
		client.executeMethod(get);
		
		//System.out.println(get.getResponseBodyAsString());

		get.releaseConnection();

	}
}
```

Danke Schonmal


----------



## Einwegdose (18. Jun 2009)

Cookies werden von dem HttpClient automatisch behandelt, darum musst du dich eigentlich garnicht kümmern. Hast du es in Zeile 45 einfach mal so versucht ? (48-50 natürlich dann weglassen)


```
GetMethod get = new GetMethod("http://spielwelt5.knightfight.de/index.php?ac=raubzug");
```


----------

