4

httpclient のデフォルトの Cookie 処理を無効/無視するにはどうすればよいですか。手動でやりたい。すべての http リクエストに対して事前定義された Cookie ヘッダーを設定したいと考えています。

4

4 に答える 4

7

最新の httpclient (4.5.1)には と呼ばれるメソッドが"disableCookieManagement"あり、これは内部の Cookie 管理を無効にするだけで、Cookie を送受信する機能ではなく、私のために働いているようです-

http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/HttpClientBuilder.html#disableCookieManagement()

于 2016-01-11T18:21:19.207 に答える
1

httpclient.setCookieStore(cookieStore);実行する前に設定しますHttpClient

于 2013-11-09T05:20:53.427 に答える
1

リクエストを実行する前に HttpContext を強制的にセットアップします。

private HttpClientContext httpContext = new HttpClientContext();
httpContext.setCookieStore(new BasicCookieStore());

setCookieStore は、空の Cookie ストアを作成して、http 接続のデフォルトの Cookie ストアを置き換えます。

その後、http メソッドを実行できます。

org.apache.http.client.HttpClient.execute(HttpUriRequest, HttpContext)

また、Cookie ストアを再利用して ( を保持BasicCookieStore)、接続を維持することもできます。

于 2015-12-29T03:52:22.757 に答える
0

Android で DefaultHttpClient による Cookie 処理を無効化/無視する方法を見つけることができませんでした (Android のソース コードをもっと調べる必要がありましたが、時間制限があります)。しかし、このように httpClient.execute() を実行する前にすべてのCookieを削除することで解決しました-

((AbstractHttpClient) myDefaultHttpClient).getCookieStore().clear();

これにより、defaultHttpClient によって保存されたすべての Cookie が削除され、次を使用して手動で Cookie を処理 (追加/削除) できます。

myHttpPost.setHeader("Cookie", myCookie);

それが役に立てば幸い。

于 2013-11-12T19:26:48.927 に答える