如何禁用/忽略httpclient的默认cookie处理。我想手动完成。我想为所有http请求设置一个预定义的cookie标头。
答案 0 :(得分:5)
最新的httpclient(4.5.1)有一个名为“disableCookieManagement”的方法,看来这只会禁用内部cookie管理,而不是发送或接收cookie的能力,并且对我有用 -
答案 1 :(得分:2)
在执行httpclient.setCookieStore(cookieStore);
HttpClient
答案 2 :(得分:0)
我无法找到一种方法来禁用/忽略Andoroid中DefaultHttpClient的cookie处理(我应该更多地探索Android源代码但有时间限制)。但是我在执行像这样的httpClient.execute()之前删除了所有cookie来解决它 -
((AbstractHttpClient) myDefaultHttpClient).getCookieStore().clear();
这将删除defaultHttpClient存储的所有cookie,然后您可以使用 -
手动处理(添加/删除)cookiemyHttpPost.setHeader("Cookie", myCookie);
希望它有所帮助。
答案 3 :(得分:0)
强制在执行请求之前设置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
)以保持连接活动。