sitelink1 | https://www.fun25.co.kr/blog/android-htt...on/?page=5 |
---|---|
sitelink2 | http://javalism.tistory.com/entry/HttpUr...8%EC%85%98 |
sitelink3 |
안드로이드 HttpUrlConnection 을 사용할 경우, 세션 관리를 해주지 않는다고 한다.
세션이 걸려있는 URL 인 경우, 쿠키값 셋팅을 통해 세션을 획득해야 한다.
[안드로이드] HttpURLConnection 을 이용한 세션
안드로이드에서 HttpURLConnection 을 사용한 서버와의 세션 유지 방법입니다.
HttpURLConnection 은 기본적으로 세션 유지를 위한 쿠키 관리를 하지 않습니다. 따라서 서버에서 세션을 생성해도 세션 쿠키가 저장이 되지 않으므로 다음 커넥션에서는 세션 유지가 안 됩니다.
세션 유지를 위해서는 클라이언트 쪽에서 서버가 Set-Cookie 라는 헤더로 보내주는 세션 쿠키 값을 저장하고 있다가 다음 연결시에 헤더에 세션 쿠키를 넣어서 보내주면 서버에서는 해당 세션의 값을 사용할 수 있도록 해 줍니다.
android.webkit.CookieManager 에 저장해 둔 쿠키값을 다시 꺼내서 HttpURLConnection 의 Cookie 프라퍼티에 세팅해 주면 세션을 유지한 채로 커넥션을 이용할 수 있습니다.
URL url = new URL(_url);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
String cookieString = CookieManager.getInstance().getCookie("세션받아올 URL");
if (cookieString != null) {
//세션을 위한 쿠키값 셋팅
urlConn.setRequestProperty("Cookie", cookieString);
}