3

我正在使用 URLConnection 登录页面。当我成功登录时,页面上将设置一个会话值。之后我想访问站点上的其他文件,但我无法维护站点的会话状态。有任何想法吗?

4

3 回答 3

2

我建议您改用 Apache HttpClient / HttpComponents。它具有维护客户端 cookie 存储的设施。


URLConnection实例维护会话状态涉及:

  • 获取 set-cookie 响应标头
  • 解析它们,找出它们适用于什么,并存储它们
  • 为后续请求创建和添加 cookie 请求标头。

在 Java 1.6 之前,没有公共 Java API 可以为您执行此操作,您必须“手动”完成所有操作。CookieHandler从 Java 1.6 开始,以/ CookieManager/ HttpCookie/ CookieStore/的形式提供支持CookiePolicy。有关详细信息,请参阅javadocs

相关页面:

于 2012-12-31T22:58:53.297 回答
0

听起来您尝试访问的网站基于 cookie 处理会话。您可能需要捕获该 cookie 并将其添加到未来的请求中。这个问题可能对那篇文章有所帮助:

带有 Cookie 的 URL 连接?

于 2012-12-31T23:13:49.130 回答
0

从 URLConnection 读取以查看是否设置了任何 cookie 或发送了包含会话 ID 的重定向,您可以将其发送回其他站点。

于 2012-12-31T23:13:58.543 回答