Не могу авторизоваться на сайте

1053
26 ноября 2016, 19:22

Пытаюсь зайти на сайт с помощью JSOUP через эту страницу.

Не получается авторизоваться. Вот мой код:

Connection.Response res = Jsoup
            .connect("https://forum.grodno.net/")
            .method(Connection.Method.GET)
            .execute();
Document document = Jsoup.connect("https://forum.grodno.net/index.php?action=login")
            .userAgent("Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0")
            .data("frmLogin[user]", "тут логин", "frmLogin[passwrd]", "тут пароль")
            .cookies(res.cookies())
            .post();

Вот скрин кода формы:

Помогите пройти авторизацию.

Answer 1

У меня получился такой класс:

import org.apache.commons.codec.digest.DigestUtils;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
public class Main {
    private static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0";
    // credentials
    private static final String USER_NAME = "";
    private static final String PASSWORD = "";
    public static void main(String[] args) throws Exception {
        final Connection.Response res = Jsoup
                .connect("https://forum.grodno.net/index.php?action=login")
                .userAgent(USER_AGENT)
                .validateTLSCertificates(false)
                .method(Connection.Method.GET)
                .execute();
        final String sessionAttr = res.parse()
                .body()
                .getElementById("frmLogin")
                .attr("onsubmit")
                .replaceAll("hashLoginPassword\\(this, '", "")
                .replaceAll("'\\);", "");
        final Connection.Response res2 = Jsoup
                .connect("https://forum.grodno.net/index.php?action=login2")
                .userAgent(USER_AGENT)
                .cookies(res.cookies())
                .header("Content-Type", "application/x-www-form-urlencoded")
                .header("Referer", "https://forum.grodno.net/index.php?action=login2")
                .header("Upgrade-Insecure-Requests", "1")
                .header("Cache-Control", "no-cache")
                .data("user", USER_NAME)
                .data("passwrd", PASSWORD.replaceAll(".", "*"))
                .data("cookielength", "9000")
                .data("hash_passwrd", hashLoginPassword(USER_NAME, PASSWORD, sessionAttr))
                .validateTLSCertificates(false)
                .method(Connection.Method.POST)
                .execute();
        System.out.println(res2.cookies());
        System.out.println(res2.statusCode());
    }
    private static String hashLoginPassword(String user, String password, String sessionAttr) {
        return DigestUtils.sha1Hex(DigestUtils.sha1Hex(user.toLowerCase() + password) + sessionAttr);
    }
}

Требуемые зависимости:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.10.1</version>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>
READ ALSO
Что означает данная ошибка: loadSystemProperties persistDebugEvent: false roDebugEvent: false?

Что означает данная ошибка: loadSystemProperties persistDebugEvent: false roDebugEvent: false?

Подскажите,отправляю на сервер текст + файлФайл - фото

318
Потеря данных при изменении ориентации Fragment

Потеря данных при изменении ориентации Fragment

Здравствуйте! я начинающий прогер и не могу разобраться помогите пожалуйстаЕсть NavigationView и несколько фрагмент страничек

304
Компоновка Swing&#39;a BorderLayout.ANY

Компоновка Swing'a BorderLayout.ANY

Помогите разобратьсяИнтересует, почему если добавлять панель на фрейм , указывая BorderLayout

255