【发布时间】:2011-08-13 03:59:28
【问题描述】:
我已经成功地使用 httpclient 登录到一个站点并打印出启用该登录的 cookie。 但是,我现在卡住了,因为我想使用 .setPage(url) 函数在 JEditorPane 中显示后续页面。但是,当我这样做并使用 Wireshark 分析我的 GET 请求时,我发现用户代理不是我的 httpclient,而是以下内容:
用户代理:Java/1.6.0_17
GET 请求(在 jeditorpane 的 setPage(URL url) 方法中的某处编码)没有使用 httpclient 检索的 cookie。我的问题是 - 我怎样才能以某种方式传输通过 httpclient 收到的 cookie,以便我的 JEditorPane 可以显示来自该站点的 URL? 我开始认为这是不可能的,我应该尝试使用普通的 Java URLconnection 等登录,但宁愿坚持使用 httpclient,因为它更灵活(我认为)。大概我的 cookie 还是有问题的??
我曾想过扩展 JEditorPane 类并覆盖 setPage(),但我不知道应该放入其中的实际代码,因为似乎无法了解 setPage() 的实际工作原理。
任何帮助/建议将不胜感激。
戴夫
【问题讨论】:
-
您在这里遇到的问题是 HttpClient 和 JVM 在您调用 setPage() 时用来获取 URL 的底层实现是完全不同的动物。因此,cookie 不会神奇地保留下来。
-
@stevevls,我认为可能是这种情况。那么如果我使用 Urlconnection 路由,它们会自动结转吗?感谢您的帮助
-
所以我想我已经弄清楚了如何做你想做的事。看看答案,如果它适合你,请接受它。祝你好运!
标签: java httpclient