HttpClient httpClient = new DefaultHttpClient();
// execute get/post/put or whatever
httpClient.doGetPostPutOrWhatever();
// get cookieStore
CookieStore cookieStore = httpClient.getCookieStore();
// get Cookies
List cookies = cookieStore.getCookies();
// process...
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.IOException;
import java.util.List;
public class So8733758 {
public static void main(String... args) throws IOException {
final HttpUriRequest request = new HttpGet("http://stackoverflow.com");
final DefaultHttpClient http = new DefaultHttpClient();
http.execute(request);
final List cookies = http.getCookieStore().getCookies();
System.out.println(cookies);
}
}
受理された回答が、なぜ存在しないメソッド
getCookieStore()
を記述しているのかわかりません。それは間違っています。事前にクッキー・ストアを作成し、そのクッキー・ストアを使用してクライアントを構築しなければなりません。それから後で、クッキーのリストを得るためにこのクッキー・ストアを参照することができます。
さらにもうひとつは、存在しないメソッドを見て頭をかきむしりながら、他の人たちをスタートさせることだ......。
これはクッキーの値を表示します。サーバのレスポンスは複数の
Set-Cookie
ヘッダフィールドを持つことができるので、Header
の配列を取得する必要があります。注意:最初のリンクは、HttpClient V3で動作していたものを指しています。V4関連の情報は下記をご覧ください。
これがあなたの質問の答えになるはずです。
http://www.java2s.com/Code/Java/Apache-Common/GetCookievalueandsetcookievalue.htm
以下はV4に関連するものです:
...さらに、javadocsはクッキーの扱いに関するより多くの情報を含むべきです。
http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/index.html
そして、httpclient v4のチュートリアルです:
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/index.html
そして、以下は参考になる擬似コードです:
ResponseProcessCookiesとAbstractHttpClientのjavadocを必ず読んでください。
最初の質問の例に基づいて、HTTPリクエストを実行した後に「CookieStore」にアクセスする方法は、「HttpContext」実行状態オブジェクトを使用することです。
HttpContext
は、リクエストの実行後にCookieストア(HttpClientBuilderでCookieStoreが指定されていない場合は新規)を参照します。これは、「ClosableHttpClient」が導入されたときの「httpcomponents-client:4.3 +」に適用されます。
Matt Broekhuisが上記の回答のコメントで回答したように、
DefaultHttpClient.ge tCookieStore()
を使用できます。サーバーに回答した時点では、「httpclient-4.2.5」に制限されていたことに注意してください。
DefaultHttpClient
は4.3で非推奨になりました。 他の人が同じ状況にいる可能性があり、元のポスターが4.1.2を使用していると指定したため、この回答をここに残します。どの出力。