Fazendo login em um site? (Jsoup)

O que é necessário para fazer login em um site usando Jsoup? Acredito que meu código esteja correto, mas nunca efetuei login em um site usando o Jsoup, por isso talvez esteja faltando alguma coisa. Aqui está o meu código:

 try {                                            
        String url = ("http://quadrigacx.com/login");


        Connection.Response loginForm = (Connection.Response)Jsoup.connect(url)
                    .method(Connection.Method.GET)
                    .execute();





        Document loginDoc = loginForm.parse();


        Elements loginElements = loginDoc.select("input:not([name=client_id]):not([name=password])");

        int i = 0;

        String v[] = new String[loginElements.size()];

        for (Element element: loginElements){
            v[i++] = element.attr("value");
        }


        int ii = 0;

        String n[] = new String[loginElements.size()];

        for (Element element: loginElements){
            n[ii++] = element.attr("name");
        }


         Connection.Response loginFormLogin = (Connection.Response)Jsoup.connect(url)
                 .cookies(loginForm.cookies())          
                .data(n[0],v[0])
                 .data("client_id", "xxxxxxx")
                 .data("password", "xxxxxx")
                .data(n[1],v[1])
                .data(n[2],v[2])
                 .method(Connection.Method.POST)
                 .execute();


         Document document2 = Jsoup.connect("http://quadrigacx.com/settings")
            .cookies(loginFormLogin.cookies())
            .get();
        System.out.print(document2.toString());
    } catch (IOException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    }

document2 retorna uma página de login que mostra que não efetuou login com êxito. Há um valor de entrada chamadotime, e acho que pode ser por isso que não funciona. É um valor que aumenta com o tempo; Corri o código duas vezes e as variáveis de tempo retornaram1511226860 e1511226876. Meu código leva cerca de 10 segundos para imprimir o documento, então talvez otime variável já mudou quando envia a solicitação de postagem? Não tenho certeza se esse é o problema. Talvez haja algo mais que não estou vendo? Obrigado.

Edit: Aqui está o código, eu publico a autenticação depois de já ter efetuado login com o ID do usuário e a senha.loginCookies são os cookies do primeiro login.Connection.Response auth = Jsoup.connect("https://quadrigacx.com/authenticate") .userAgent("Mozilla") .method(Connection.Method.POST) .cookies(loginCookies) .data("google_code", googleCode.getText()) .data("email_code", emailCode.getText()) .data("authenticate", "Authenticate") .followRedirects(true) .execute(); Eu também tentei: byte[] gcText = googleCode.getText().getBytes(ISO_8859_1); String gcValue = new String(gcText, UTF_8); byte[] ecText = emailCode.getText().getBytes(ISO_8859_1); String ecValue = new String(ecText, UTF_8); Connection.Response auth = Jsoup.connect("https://quadrigacx.com/authenticate") .userAgent("Mozilla") .method(Connection.Method.POST) .cookies(loginCookies) .data("google_code", gcValue) .data("email_code", ecValue) .data("authenticate", "Authenticate") .followRedirects(true) .execute();

questionAnswers(1)

yourAnswerToTheQuestion