![](/img/trans.png)
[英]How do the Java classes CookieHandler and CookieManager work?
[英]Java CookieManager or CookieHandler expire?
我使用以下命令向站點發出HTTP請求:
//首次調用服務器時執行
static {
cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);
}
以下是實際的調用
BufferedReader reader = null;
HttpURLConnection conn = null;
URL url = new URL(urlString);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0");
//I added these 2 lines as a trial to fix this problem but failed
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);
conn.connect();
InputStream in = conn.getInputStream();
...
上面的代碼在一段時間內效果很好,但是在某些時候(確切地不知道多少時間),我得到的響應表明我的cookie被禁用,應該啟用它們。 重新啟動服務器會使它再次工作,直到再次發生,依此類推...
cookieManager和cookieHandler在某個時候到期? 我想念什么嗎? 謝謝
您無法在CookieManager級別上進行控制,而只能在Cookie本身內進行控制。 HttpCookie
具有setMaxAge(long expiry)
設置cookie的最長setMaxAge(long expiry)
以秒為單位)。
正如您在HttpCookie的源代碼(其中MAX_AGE_UNSPECIFIED
)和getMaxAge()
方法文檔中都看到的那樣,默認值設置為-1
。
默認情況下,-1表示cookie將一直保留到瀏覽器關閉為止。
setMaxAge(long expiry)
聲明以下內容:
負值表示cookie不會持久存儲,並且在Web瀏覽器退出時將被刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.