当前位置:首页 > Java

java 如何发送cookie

2026-03-20 20:05:42Java

发送 Cookie 的方法

在 Java 中发送 Cookie 可以通过多种方式实现,具体取决于使用的技术栈(如原生 HttpURLConnection、Apache HttpClient、Spring 等)。以下是几种常见场景的实现方法:

使用 HttpURLConnection(原生 Java)

通过 HttpURLConnection 设置请求头的 Cookie 字段:

java 如何发送cookie

URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Cookie", "name=value; name2=value2");
connection.connect();

使用 Apache HttpClient

通过 HttpClientHttpContext 或直接设置请求头:

java 如何发送cookie

CloseableHttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet("http://example.com");

// 方法1:通过请求头设置
request.setHeader("Cookie", "name=value; name2=value2");

// 方法2:通过 CookieStore(推荐)
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("name", "value");
cookie.setDomain("example.com");
cookieStore.addCookie(cookie);

HttpContext context = HttpClientContext.create();
context.setCookieStore(cookieStore);

CloseableHttpResponse response = client.execute(request, context);

使用 Spring RestTemplate

通过 RestTemplateClientHttpRequestInterceptor 发送 Cookie:

RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors().add((request, body, execution) -> {
    request.getHeaders().add("Cookie", "name=value");
    return execution.execute(request, body);
});

String response = restTemplate.getForObject("http://example.com", String.class);

使用 Servlet(服务端设置 Cookie)

在 Servlet 中通过 HttpServletResponse 添加 Cookie:

Cookie cookie = new Cookie("name", "value");
cookie.setMaxAge(3600); // 过期时间(秒)
cookie.setPath("/");    // 生效路径
response.addCookie(cookie);

注意事项

  • 作用域:确保 Cookie 的 DomainPath 与目标 URL 匹配。
  • 安全性:敏感 Cookie 建议设置 SecureHttpOnly 属性。
  • 多值 Cookie:多个 Cookie 需用分号分隔(如 name1=value1; name2=value2)。

根据具体需求选择合适的方法,推荐使用 CookieStore(Apache HttpClient)或拦截器(Spring)管理 Cookie 生命周期。

标签: javacookie
分享给朋友:

相关文章

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读…

如何启用java

如何启用java

启用 Java 的方法 检查 Java 是否已安装 在命令行或终端输入 java -version,如果显示版本信息,说明 Java 已安装。若未安装,需从 Oracle 官网 或 OpenJDK 下…

react如何接受cookie

react如何接受cookie

在 React 中接收 Cookie React 本身不直接处理 Cookie,但可以通过浏览器提供的 document.cookie API 或第三方库来实现。以下是几种常见方法: 使用 docu…

java实现php

java实现php

Java 实现 PHP 功能的方法 在 Java 中实现 PHP 的功能通常涉及以下几个方面:字符串处理、Web 开发、数据库操作等。以下是几种常见需求的实现方法。 字符串处理 PHP 中的字符串处…

js实现cookie

js实现cookie

设置Cookie 在JavaScript中,可以通过document.cookie属性设置Cookie。设置时需要指定键值对以及可选的属性如过期时间、路径、域名等。 document.cookie…