Как отключить автологин на веб-сайте — (Android Studio)

#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 (правильно), иначе это не будет работать так, как вы хотите