【发布时间】:2011-11-04 14:08:06
【问题描述】:
发送带有用户名和密码的 POST 请求后,如何使用 Jsoup 保存 cookie?还是我必须先将它们提供给连接对象然后保存?
【问题讨论】:
标签: java session cookies login jsoup
发送带有用户名和密码的 POST 请求后,如何使用 Jsoup 保存 cookie?还是我必须先将它们提供给连接对象然后保存?
【问题讨论】:
标签: java session cookies login jsoup
假设 HTML 表单如下所示:
<form action="http://example.com/login" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="login" value="Login" />
</form>
您可以通过 POST 获取 cookie,如下所示:
Response response = Jsoup.connect("http://example.com/login")
.method(Method.POST)
.data("username", username)
.data("password", password)
.data("login", "Login")
.execute();
Map<String, String> cookies = response.cookies();
Document document = response.parse(); // If necessary.
// ...
您可以将 cookie 传回给后续请求,如下所示:
Document document = Jsoup.connect("http://example.com/user")
.cookies(cookies)
.get();
// ...
或者,如果您知道单个 cookie 名称:
Document document = Jsoup.connect("http://example.com/user")
.cookie("SESSIONID", cookies.get("SESSIONID"))
.get();
// ...
【讨论】: