0

여기 내 코드입니다.Apache 쿠키를 String으로 변환하는 방법은 무엇입니까? 내가 루프 <code>cookies</code> 목록을 할 수 있고 자신의 String 표현을 생성, 분명히</p> <pre><code>List<Cookie> cookies = httpClient.getCookieStore().getCookies(); </code></pre> <p>:

그러나 아파치 HttpClient API로 직접 할 수 있는지 궁금합니다. cookies 다음 쿠키가 포함 된 경우

그래서 :

"foo=123; bar=123" 

도메인, 경로 관리, 유통 등을해야하는 방법

HttpClient를 : [foo=123, bar=123]을, 어떻게 HttpClient를 API와 아래의 문자열을 생성 할 수 있습니다 4.1.1

+0

는 HC의 이러한 이전 버전해야합니까? – oleg

+0

@oleg 현재 사용중인 경우 HC 4.3 이상으로 업그레이드 할 수 없습니다. – Stephan

답변

1

HttpClient를 4.1

,691 363,210
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); 
} 
+0

내 호기심을 위해서 HC 4.3+ 용 코드를 추가해도 될까요? – Stephan

+0

별로 다를 것은 없습니다. 그러나 HC 4.5에서 레거시 쿠키 대신 RFC 6265 호환 쿠키 사양을 사용하는 것이 좋습니다. – oleg