java如何获取coo
Java 获取 Cookie 的方法
在 Java 中,可以通过多种方式获取 Cookie,具体取决于使用的技术栈和场景。以下是几种常见的方法:
使用 HttpServletRequest
在基于 Servlet 的 Web 应用中,可以通过 HttpServletRequest 对象获取 Cookie:

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
如果通过 Apache HttpClient 发送 HTTP 请求并获取 Cookie,可以使用 CookieStore:
CloseableHttpClient httpClient = HttpClients.createDefault();
CookieStore cookieStore = new BasicCookieStore();
HttpClientContext context = HttpClientContext.create();
context.setCookieStore(cookieStore);
HttpGet httpGet = new HttpGet("http://example.com");
CloseableHttpResponse response = httpClient.execute(httpGet, context);
List<Cookie> cookies = cookieStore.getCookies();
for (Cookie cookie : cookies) {
System.out.println("Cookie: " + cookie.getName() + "=" + cookie.getValue());
}
使用 Jsoup
如果通过 Jsoup 解析网页并获取 Cookie,可以在连接时设置 Connection.Response:

Connection.Response response = Jsoup.connect("http://example.com")
.method(Connection.Method.GET)
.execute();
Map<String, String> cookies = response.cookies();
for (Map.Entry<String, String> entry : cookies.entrySet()) {
System.out.println("Cookie: " + entry.getKey() + "=" + entry.getValue());
}
使用 Spring Boot
在 Spring Boot 应用中,可以通过 @CookieValue 注解直接获取 Cookie:
@GetMapping("/example")
public String getCookie(@CookieValue(value = "cookieName", defaultValue = "") String cookieValue) {
return "Cookie Value: " + cookieValue;
}
使用 OkHttp
如果使用 OkHttp 发送请求并获取 Cookie,可以通过自定义 CookieJar 实现:
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(new CookieJar() {
private final List<Cookie> cookies = new ArrayList<>();
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
this.cookies.addAll(cookies);
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
return cookies;
}
})
.build();
Request request = new Request.Builder()
.url("http://example.com")
.build();
Response response = client.newCall(request).execute();
以上方法涵盖了不同场景下获取 Cookie 的实现方式,可以根据具体需求选择合适的方法。






