java如何获取cookie
获取Cookie的方法
在Java中获取Cookie可以通过不同的方式实现,具体取决于应用场景(如Servlet、HttpClient等)。以下是几种常见的方法:
使用HttpServletRequest获取Cookie
在Servlet或Spring MVC中,可以通过HttpServletRequest对象获取客户端发送的Cookie:

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
public void getCookies(HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
System.out.println("Cookie Name: " + name + ", Value: " + value);
}
}
}
使用HttpClient获取Cookie
如果通过Apache HttpClient发送HTTP请求并需要获取响应中的Cookie,可以使用CookieStore:

import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.BasicCookieStore;
public void getHttpClientCookies() throws Exception {
CookieStore cookieStore = new BasicCookieStore();
try (CloseableHttpClient client = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build()) {
HttpGet request = new HttpGet("https://example.com");
client.execute(request);
cookieStore.getCookies().forEach(cookie -> {
System.out.println("Cookie Name: " + cookie.getName() + ", Value: " + cookie.getValue());
});
}
}
使用Spring RestTemplate获取Cookie
在Spring应用中,可以通过RestTemplate拦截器获取Cookie:
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public void getRestTemplateCookies() {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.getForEntity("https://example.com", String.class);
HttpHeaders headers = response.getHeaders();
String cookieHeader = headers.getFirst(HttpHeaders.SET_COOKIE);
System.out.println("Cookie Header: " + cookieHeader);
}
使用Jsoup获取Cookie
如果需要从HTML解析中获取Cookie,可以使用Jsoup:
import org.jsoup.Connection;
import org.jsoup.Jsoup;
public void getJsoupCookies() throws Exception {
Connection.Response response = Jsoup.connect("https://example.com")
.method(Connection.Method.GET)
.execute();
Map<String, String> cookies = response.cookies();
cookies.forEach((name, value) -> {
System.out.println("Cookie Name: " + name + ", Value: " + value);
});
}
注意事项
- 在Servlet环境中,
request.getCookies()可能返回null,需检查空值。 - HttpClient和RestTemplate的Cookie存储方式不同,需根据场景选择。
- 敏感Cookie信息需妥善处理,避免泄露。






