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

How to convert Apache cookies back to String?

这是我的代码:

 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);
}