这是我的代码:
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/