아래 코드는 Android 애플리케이션에서 인증 후 쿠키를 얻는 코드입니다. 특정 서버에 대한CookieManager.getCookie()가 다른 값을 반환합니다.
String url = "https://host:port/sso/SSOServlet";
BasicCookieStore cookieJar = new BasicCookieStore();
CookieManager cookieMgr = CookieManager.getInstance();
String host = null;
URL urlObj = Util.getUrl(url);
host = urlObj.getHost();
String cookiesHost = cookieMgr.getCookie(host); // value for cookiesHost is JSESSIONID
String cookiesURL = cookieMgr.getCookie(url); // value for cookiesURL is JSESSIONID and a custom Session id for application.
그래서 cookieMgr.getCookie()
반환 다른 값은 내가 host
대신 url
사용하는 경우. 왜 그런가요? 일부 서버의 경우 host
또는 url
을 사용하면 동일한 값을 반환합니다. 왜 이런 일이 일어날까요?
이전에 호스트 OR URL에 대해 동일한 값을 반환했지만이 한 서버는 코드 주석에서 언급 한 값을 반환합니다.
getUrl은 URL 객체를 반환합니다. 하지만 다른 입력이지만, 일부 서버에서는 그렇지 않습니다. 호스트를 사용하는 경우 대부분의 서버에서 모든 쿠키를 얻습니다. 갑자기 호스트에 대한 모든 쿠키를 반환하지 않는 서버를 발견했지만 호스트를 URL로 변경했지만 getCookie가 모든 쿠키를 반환하지 않았습니다. – yogsma