簡體   English   中英

Java CookieManager或CookieHandler到期?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM