【问题标题】:Sending POST request with username and password and save session cookie使用用户名和密码发送 POST 请求并保存会话 cookie
【发布时间】:2011-11-04 14:08:06
【问题描述】:

发送带有用户名和密码的 POST 请求后,如何使用 Jsoup 保存 cookie?还是我必须先将它们提供给连接对象然后保存?

【问题讨论】:

标签: java session cookies login jsoup


【解决方案1】:

假设 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();
// ...

【讨论】:

  • 关于 .cookies(map) 建议的要点。 .data() 有一个。我会尽快添加它。
  • 好的,我有那个方法;如果您从头构建,现在可用,或者很快在 1.6.2 中可用。 github.com/jhy/jsoup/commit/…
猜你喜欢
  • 2013-03-24
  • 2015-09-16
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2015-11-08
相关资源
最近更新 更多