【发布时间】:2014-05-19 18:25:41
【问题描述】:
我正在编写必须处理登录页面的小应用程序。我需要在 URL 中使用登录名和密码来连接到应用程序。例如:“www.page.com/dsd?login=xxx&password=yyy”
我只能用jsoup。
public Document getContentOfPage(String url) throws IOException {
return Jsoup.connect(url)
.userAgent("Mozilla")
.cookies(getCookiesForSession(url))
.timeout(50000)
.get();
}
public Map<String, String> getCookiesForSession(String url) throws IOException {
Connection.Response res = Jsoup.connect(url)
.method(Connection.Method.GET).timeout(50000).execute();
return res.cookies();
}
主要问题是我需要使用 GET 两次。在 cookie 中存储了登录页面时生成的“session_id”和“login”值。 Jsoup 只是忘记了页面请求中的 cookie 并将我重定向到登录页面。有没有机会在单一的 GET 方法中维护 cookie?
提示:HttpGet 在这里完美运行。
【问题讨论】:
-
如何只调用一次
getCookiesForSession,将cookie存储在某处并将它们作为getContentOfPage的参数传递以避免再次调用getCookiesForSession? -
我需要检查我是否可以登录到页面。如果我将会话 ID 存储在某个地方,我将能够每次都记录...或者如果会话 ID 将从服务器中删除,我根本无法登录。好主意,但对我来说仍然不是一个好的解决方案。
标签: java http url cookies jsoup