#java #post #get #jsoup #autologin
#java #Публикация #получить #jsoup #автологин
Вопрос:
я пишу приложение, но у меня проблема, я делаю запрос GET и POST с помощью Jsoup для входа в систему на веб-сайте Iliad, когда я запускаю приложение, оно также входит в систему с неправильными учетными данными, я думаю, это потому, что веб-сайт выполняет автологин, но я понятия не имею, какчтобы удалить его.
Это код:
try {
res = Jsoup.connect("https://www.iliad.it/account/")
.method(Connection.Method.GET)
.header("Content-Type", "application/x-www-form-urlencoded")
.ignoreHttpErrors(true)
//.cookie("auth_mobile", "0")
.execute();
SESSID = res.cookie("ACCOUNT_SESSID");
//AUTH = res.cookie("auth_mobile");
response = Jsoup.connect("https://www.iliad.it/account/")
.method(Connection.Method.POST)
.header("Content-Type", "application/x-www-form-urlencoded")
.data("login-ident", MainActivity.id)
.data("login-pwd", MainActivity.pwd)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0")
.ignoreHttpErrors(true)
.followRedirects(true)
.cookie("ACCOUNT_SESSID", SESSID)
//.cookie("auth_mobile", "0")
.execute();
Errore = false;
doc = Jsoup.parse(response.parse().outerHtml());
System.out.println(doc);
} catch (Exception e) {...
Ответ №1:
Попробуйте получить файл cookie сеанса из заголовков при первоначальном запросе GET:
set-cookie: ACCOUNT_SESSID=9p3lg...1j2e3; path=/account/; HttpOnly
При любых последующих запросах к серверу вы должны установить это как:
Cookie: ACCOUNT_SESSID=9p3lg...1j2e3
Итак, у вас должно быть что-то вроде:
response = Jsoup.connect("https://www.iliad.it/account/")
.method(Connection.Method.POST)
.data("login-ident", MainActivity.id)
.data("login-pwd", MainActivity.pwd)
...
.cookie("Cookie", "ACCOUNT_SESSID=" SESSID) // <<<
//.cookie("auth_mobile", "0")
.execute();
Это должно приблизить вас на шаг.
Комментарии:
1. Извините, но я новичок, я не знаю, что вы имеете в виду, что я должен написать в своем коде?
2. Cookie — это способ отслеживания сеанса пользователя браузерами / серверами. Вам нужно установить это в заголовках HTTP (правильно), иначе это не будет работать так, как вы хотите