java — JSoup Войдите на сайт и посетите

JSoup Войдите на веб-сайт И затем откройте другую страницу, СОХРАНЯЯ тот сеанс входа в систему.

Может ли кто-нибудь объяснить, как войти в систему этот сайт используя JSoup?

Имя пользователя:

Что-нибудь (например, 110000, 110001 и 110002 все работают)

Пароль:

«sgl1617» (мне все равно, кто-то знает пароль, с ним ничего не поделаешь.)

Мой код в настоящее время (полностью терпит неудачу, я уверен, что я не на том «пути»):

Connection.Response loginForm = Jsoup.connect("http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/index.php")
.method(Connection.Method.GET)
.execute();Document doc = Jsoup.connect("http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/index.php").get();Jsoup.connect("http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/authentication.php")
.data("cookieexists", "false")
.data("username", "110638")
.data("password", "sgl1617")
.data("login", "Login")
.cookies(loginForm.cookies())
.post();

В одном я уверен: authentic.php не существует.

Я новичок в JSoup, поэтому, пожалуйста, объясните некоторый код и расскажите мне о части «cookie» (я знаю, что такое куки, но не знаю, как вы используете их с JSoup.)

0

Решение

Есть несколько моментов, которые нужно исправить:

  • неверная конечная точка входа (правильная http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/index.php);
  • немного POST параметры, которые вы отправляете, написаны с ошибками (например, username должно быть user);
  • немного POST параметры не требуются (например, cookieexists);
  • вы не добавляете необходимое csrf параметр в POST запрос.
  • Вы должны проверить ответ, чтобы понять, в порядке ли логин или нет.

Мой рабочий код (с проверкой ошибок):

Connection.Response loginForm = Jsoup
.connect("http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/index.php")
.method(Connection.Method.GET)
.execute();

Document doc = loginForm.parse();
String csrf = doc.select("input[name=csrf]").val();
Connection.Response response = Jsoup.connect("http://www.gymnasiumleiden.nl/roostersinfoweb/infoweb/index.php")
.data("user", "110638")
.data("paswoord", "sgl1617")
.data("login", "loginform")
.data("csrf", csrf)
.cookies(loginForm.cookies())
.method(Connection.Method.POST)
.execute();
String body = response.body();
if(body.contains("Wachtwoord is incorrect")){
System.out.println("Password incorrect!");
} else if(body.contains("Gebruikersnaam werd niet gevonden.")){
System.out.println("Not found username!");
} else {
System.out.println("Login successfully!");
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]