2017-05-12 8 views
1

문제는 간단하며 총 쿠키 크기 (바이트 단위)를 가져야합니다. I가 HTTP 헤더를 사용하여 셋 - 쿠키 소자라고 :뿐만 필드의 결과를 얻을헤더가있는 웹 사이트의 전체 쿠키 크기를 확인하십시오.

public static String getCookiesField(URLConnection connection){ 
    return connection.getHeaderField("Set-Cookie"); // it can return null 
} 

을 :

dwsid = H-GOhXnQOVZU1SKVvlnOMJOYZq5CNAs9AUYMWArBVV00TnFO3a8VgoaUtl6wpJqgKWkidqt-y1ihDRm9yo3a7g를 ==; 경로 = /; HttpOnly

나는 무엇을 의미하는지 모르지만 나는 바이트 단위로 쿠키의 크기를 알아야합니다.

답변

1

쿠키 문자열에 getBytes() (으)로 전화하십시오.

확실하지 않은 경우 무엇을 쿠키입니까, mdn 당신을 도울 수 있습니다; 구문은

Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly; Path=<path-value> 
// or 
Set-Cookie: sessionid=38afes7a8; httponly; Path=/ 

getHeaderField 방법은 쿠키의 String (머리글에서 - 쿠키 설정 필드의 값) 반환과 같은 다른 많은 것들을 할 수 있습니다.


byte (S)의 크기는 myBytes.length (NO ())에 의해 계산된다.

그래서 당신은 다음과 같이 쿠키의 크기를 얻을 수 있습니다 :

String setCookieField = connection.getHeaderField("Set-Cookie"); 
// check that cookie is not null 
String[] cookieFields = cookie.split(";"); 
// the cookie name/value pair is typically first 
String[] cookieNameValue = cookieFields[0].split("="); 
String cookie = cookieNameValue[1]; 
int size = cookie.getBytes("UTF-8").length; 
+0

당신에게 너무 많은 오빠 감사합니다! 그게 효과가있어. – Hdevoxxed

+0

좋아! :) 그리고 그것이 효과가 있다면 다른 사람들이 나중에 그것을 찾을 수 있도록 대답을 표시하십시오. – Nevermore

+0

완료! 너 형제 야. – Hdevoxxed

0

가 여기에 빠른 해결책 :

String cookie = "dwsid=H-GOhXnQOVZU1SKVvlnOMJOYZq5CNAs9AUYMWArBVV00TnFO3a8VgoaUtl6wpJqgKWkidqt-y1ihDRm9yo3a7g==; path=/; HttpOnly".split(";"); 
bytes b[] = cookie[0].getBytes(); 
return b.length;