"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como superar problemas de autenticação ao enviar formulários de login com Jsoup

Como superar problemas de autenticação ao enviar formulários de login com Jsoup

Publicado em 2024-11-07
Navegar:326

How to Overcome Authentication Issues While Submitting Login Forms with Jsoup

Desafios encontrados no envio de formulários de login com Jsoup

Apesar de inserir credenciais de login válidas, você pode encontrar dificuldades para acessar um site usando o código fornecido. Após a execução, o código não é autenticado, indicando um possível problema.

Um possível descuido diz respeito à exigência de valores adicionais além de nome de usuário, senha e cookies. Especificamente, o site exige a inclusão de VIEWSTATE e EVENTVALIDATION.

Para resolver isso, recupere estes valores da resposta da solicitação GET inicial:

Document doc = loginForm.parse();
Element e = doc.select("input[id=__VIEWSTATE]").first();
String viewState = e.attr("value");
e = doc.select("input[id=__EVENTVALIDATION]").first();
String eventValidation = e.attr("value");

Incorpore esses valores na solicitação POST subsequente:

org.jsoup.nodes.Document document = (org.jsoup.nodes.Document) Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php").userAgent("Mozilla/5.0")               
            .data("myLogin$myUsername", "MyUsername")
            .data("myLogin$myPassword, "MyPassword")
            .data("myLogin$myLoginButton.x", "22")                   
            .data("myLogin$myLoginButton.y", "8")
            .data("__VIEWSTATE", viewState)
            .data("__EVENTVALIDATION", eventValidation)
            .cookies(loginForm.cookies())
            .post();

Inclua o campo userAgent para garantir a compatibilidade com a renderização específica do navegador do site.

Melhorias

Para ativar o "lembrar me" durante o login:

.data("myLogin$myEnableAutoLogin", "on")
Declaração de lançamento Este artigo foi reimpresso em: 1729401436 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3