从 HttpURLConnection 保存 Cookie(包括 !httponly 标志)和会话

Posted

技术标签:

【中文标题】从 HttpURLConnection 保存 Cookie(包括 !httponly 标志)和会话【英文标题】:Save Cookie (Including !httponly flag) And Session From HttpURLConnection 【发布时间】:2016-07-01 03:21:24 【问题描述】:

我在 Java 中使用 HttpURLConnection 时遇到问题,与休息服务器的连接在经过身份验证后会提供客户端 cookie。我可以在请求后从响应标头(Set-Cookie)中保存 cookie,并将它们用于下一个请求,但是具有 !httponly 标志的 cookie 在响应标头(Set-Cookie)中不可用。

我需要将带有 !httponly 标志的 session_id cookie 发送到下一个请求,因此在应用退出后的下一个请求中不需要对连接进行身份验证。

如何像 cURL 一样在 Java 中保存所有 cookie(基本 cookie、安全 cookie、httponly cookie)?

【问题讨论】:

【参考方案1】:

找了半天找到了解决办法:http://jaunt-api.com/

【讨论】:

【参考方案2】:

我知道这个问题很老,但它是互联网搜索中出现的第一个答案。

要解决,请在此处使用CookieHandler.setDefault( new CookieManager( null, CookiePolicy.ACCEPT_ALL ) );:Should HttpURLConnection with CookieManager automatically handle session cookies?

【讨论】:

以上是关于从 HttpURLConnection 保存 Cookie(包括 !httponly 标志)和会话的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HttpURLConnection 实例获取 HTTP 请求字符串

如何从 HttpURLConnection 读取 json 数据

从 HttpURLConnection 获取 InputStream 对象时出现 FileNotFoundException

为啥 ConnectException:连接被拒绝:从 HttpURLConnection.getResponseCode() 抛出连接? [复制]

HttpURLConnection从链接下载数据存放本地临时文件,Java

HttpURLConnection从链接下载数据存放本地临时文件,Java