是否有一种简单的方法可以确保HttpClient在请求期间不发送cookie,而不删除所有cookie。
通过做:
httpClient.getCookieStore().clear();
不发送cookie,这很好。 但对于其他请求(我需要这些cookie),我不想再次获取新的cookie。
答案 0 :(得分:0)
您可以尝试为该特定请求手动设置请求的Cookie标头
request.setHeader("Cookie","");
编辑: 因此,如果不工作,其他方法可能是尝试将空cookie存储添加到该HttpClient实例,所以理论上你将有一个空的cookiestore
// Create a local instance of cookie store
CookieStore cookieStore = new BasicCookieStore();
// Add the created cookieStore to the http client instance
httpClient.setCookieStore(cookieStore);
答案 1 :(得分:0)
我的回答是基于您使用Apache HttpClient版本4.x的假设。
默认情况下,HttpClient 4.x向负责HTTP状态管理的协议处理管道引入了两个协议拦截器:RequestAddCookies
和ResponseProcessCookies
。您希望在保留RequestAddCookies
的同时删除ResponseProcessCookies
。
这是用HttpClient 4.3
完成的CloseableHttpClient httpclient = HttpClients.custom()
.disableCookieManagement()
.addInterceptorFirst(new ResponseProcessCookies())
.build();
还有其他方法可以实现相同的结果,例如使用自定义协议拦截器从所有传出请求中删除Cookie标头,但删除RequestAddCookies
是最有效的。