Отправка POST-запроса с именем пользователя и паролем и сохранение файла cookie сеанса - PullRequest
9 голосов
/ 26 августа 2011

Как я могу сохранить куки с помощью Jsoup после отправки запроса POST с именем пользователя и паролем?Или я должен сначала предоставить их объекту соединения, а затем сохранить?

1 Ответ

14 голосов
/ 26 августа 2011

Предполагая, что 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>

Вы можете разместить ее и получить файлы 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();
// ...
...