使用用户名和密码发送POST请求并保存会话Cookie
问题描述:
如何在使用用户名和密码发送POST请求后使用Jsoup保存Cookie?或者我必须首先提供它们到连接对象然后保存?
How can I save cookies with Jsoup after sending a POST request with username and password? Or must I first provide them to connection object and then save?
答
假设HTML表单如下所示:
Assuming that the HTML form look like below:
<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:
You can POST it and obtain cookies as below:
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,如下所示: / p>
You can pass cookies back on subsequent requests as below:
Document document = Jsoup.connect("http://example.com/user")
.cookies(cookies)
.get();
// ...
或者如果您知道单个Cookie名称:
Or if you know the individual cookie name:
Document document = Jsoup.connect("http://example.com/user")
.cookie("SESSIONID", cookies.get("SESSIONID"))
.get();
// ...