首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java CookieManager或CookieHandler到期了?

Java CookieManager或CookieHandler到期了?
EN

Stack Overflow用户
提问于 2018-05-21 17:25:45
回答 1查看 454关注 0票数 1

我使用以下内容向站点发出HTTP请求:

//第一次调用服务器时执行

代码语言:javascript
复制
static {
        cookieManager = new CookieManager();
        cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);     
        CookieHandler.setDefault(cookieManager); 
}

下面的代码执行实际的调用

代码语言:javascript
复制
            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会在某个时候到期吗?我是不是遗漏了什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 17:43:37

您不能在cookie级别上控制这一点,但可以直接在CookieManager本身中进行控制。HttpCookiesetMaxAge(long expiry)设置cookie的最长期限(以秒为单位)。

正如您在HttpCookie的源代码(其中是MAX_AGE_UNSPECIFIED )和getMaxAge()方法文档中看到的那样,默认值被设置为-1

默认情况下为

,-1表示cookie将一直存在到浏览器关闭。

setMaxAge(long expiry)声明了以下内容:

cookie负值表示cookie不会永久存储,在

浏览器退出时将被删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50445678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档