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.)
Есть несколько моментов, которые нужно исправить:
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!");
}
Других решений пока нет …