java - 如何将 Apache cookie 转换回字符串?

标签 java cookies apache-httpclient-4.x apache-commons-httpclient

这是我的代码:

 List<Cookie> cookies = httpClient.getCookieStore().getCookies();

显然,我可以循环 cookies 列表并生成它们的字符串表示形式。

但是,我想知道是否可以直接使用 Apache HttpClient API 来完成。

因此,如果 cookies 包含以下 cookie:[foo=123, bar=123],我如何使用 HttpClient API 生成下面的字符串:

"foo=123; bar=123"

该方法应该处理域、路径、过期等

HttpClient 4.1.1

最佳答案

HttpClient 4.1

BasicClientCookie cookie1 = new BasicClientCookie("foo", "123");
cookie1.setVersion(0);
cookie1.setDomain("origin.com");
cookie1.setPath("/");
BasicClientCookie cookie2 = new BasicClientCookie("bar", "123");
cookie1.setVersion(0);
cookie1.setDomain("origin.com");
cookie1.setPath("/");

BasicCookieStore cookieStore = new BasicCookieStore();
cookieStore.addCookie(cookie1);
cookieStore.addCookie(cookie2);

NetscapeDraftSpec spec = new NetscapeDraftSpec();
List<Header> headers = spec.formatCookies(cookieStore.getCookies());
for (Header header: headers) {
    System.out.println(header);
}

HttpClient 4.5

BasicClientCookie cookie1 = new BasicClientCookie("foo", "123");
cookie1.setVersion(0);
cookie1.setDomain("origin.com");
cookie1.setPath("/");
BasicClientCookie cookie2 = new BasicClientCookie("bar", "123");
cookie1.setVersion(0);
cookie1.setDomain("origin.com");
cookie1.setPath("/");

BasicCookieStore cookieStore = new BasicCookieStore();
cookieStore.addCookie(cookie2);
cookieStore.addCookie(cookie1);

RFC6265StrictSpec spec = new RFC6265StrictSpec();
List<Header> headers = spec.formatCookies(cookieStore.getCookies());
for (Header header: headers) {
    System.out.println(header);
}

关于java - 如何将 Apache cookie 转换回字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41286400/

相关文章:

java - 使用 Apache Async HttpClient 4.0.x 时忽略 HTTPS 连接上的错误证书

javascript - 将带有自定义 cookie 的 Ajax 请求发送到另一个域

php - 自动登录 phpMyAdmin

java - Apache Camel Http 和 SSL

httpclient - 如何通过 httpClient fluent 处理重定向?

c# - 管理员必须重新加载页面才能看到管理功能(关于 cookie 位置的问题)

java - 将数据插入动态创建的表列时面临的问题

java - 使用列表参数调用存储过程

java - 但常量放在一个文件中并在所有 Activity 中调用它们

java - 如何在JAVA中使用Gigya API实现登录功能?