Notice
Recent Posts
Recent Comments
Link
투케이2K
678. (Android/Java) [유틸 파일] 도메인 별 쿠키 매니저에 저장된 쿠키 및 세션 확인 - domain CookieManager getCookies 본문
Android
678. (Android/Java) [유틸 파일] 도메인 별 쿠키 매니저에 저장된 쿠키 및 세션 확인 - domain CookieManager getCookies
투케이2K 2023. 11. 4. 12:17[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : webviewGetDataStoreAllCookie : [웹뷰에 저장된 쿠키 및 세션 값 확인] : CookieManager getAllCookies
// -----------------------------------------------------------------------------------------
public static ArrayList<HashMap<String, Object>> webviewGetDataStoreAllCookie(Context mContext, WebView webview) {
/**
* // -----------------------------------------
* [webviewGetDataStoreAllCookie 메소드 설명]
* // -----------------------------------------
* 1. 웹뷰에 저장된 쿠키 및 세션 값 확인
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_WebviewCommonFunc.webviewGetDataStoreAllCookie(A_Intro.this, mmain_webview);
*
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* [{cookie=[MM_PF=SEARCH], domain=https://m.naver.com/}, {cookie=[ NNB=YP7KLNZKWZCWK], domain=https://m.blog.naver.com/Recommendation.naver}]
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
ArrayList<HashMap<String, Object>> returnData = new ArrayList<>();
String M_LOG = "";
// [로직 처리 실시]
try {
// [쿠키 매니저 선언 실시]
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setAcceptThirdPartyCookies(webview, true);
// [웹뷰 방문한 히스토리 내역 확인]
ArrayList<String> historyList = C_WebviewCommonFunc.webviewHistoryList(mContext, webview);
// [널 체크 실시]
if (historyList != null && historyList.size() > 0){
// [쿠키 매니저에 저장된 쿠키 및 세션 값 확인]
if (cookieManager.hasCookies() == true){
for (int i=0; i<historyList.size(); i++){
// [도메인 기준으로 쿠키 값 확인]
String cookies = cookieManager.getCookie(historyList.get(i));
// [데이터 파싱 수행]
if (cookies != null && cookies.equals("") == false && cookies.equals("null") == false){
// [MM_PF=SEARCH; NNB=TDE4OVP7VVCWK]
if (cookies.endsWith(";") == false){
cookies = cookies + ";";
}
int count = C_Util.stringCount(cookies, ";"); // [쿠키 개수 확인]
if (count > 0){
// [파싱한 쿠키 데이터]
String [] array = cookies.split(";");
// [JSON 데이터 생성]
HashMap <String, Object> map = new HashMap();
map.put("domain", String.valueOf(historyList.get(i)));
ArrayList <String> list = new ArrayList();
for (int j=0; j<array.length; j++) {
if (list.toString().contains(array[i].trim()) == false){
list.add(array[i].trim());
}
}
map.put("cookie", list);
// [배열에 삽입 실시]
returnData.add(map);
}
}
}
M_LOG = "[Success] :: cookieManager hasCookies true";
}
else {
M_LOG = "[ERROR] :: cookieManager hasCookies false";
}
}
else {
M_LOG = "[ERROR] :: historyList is null";
}
} catch (Exception e) {
M_LOG = "[EXCEPTION] :: " + String.valueOf(e.getMessage());
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._F_(mContext, "웹뷰에 저장된 쿠키 및 세션 값 확인", new String[]{
"M_LOG :: " + String.valueOf(M_LOG),
"RETURN :: " + String.valueOf(returnData)
});
// ===============================================================
// [리턴 변수 반환]
return returnData;
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments