Jsoup을 사용하여 로그인 양식 제출 문제 해결
올바른 로그인 자격 증명을 제출했음에도 불구하고 제공된 코드가 사용자를 인증하지 못하고 로그인 페이지를 표시합니다. 잠재적인 구현 문제를 나타냅니다.
코드에 누락된 필수 측면 중 하나는 VIEWSTATE 및 EVENTVALIDATION 값을 포함하는 것입니다. 이러한 값은 로그인을 위해 웹사이트에 필요하며 초기 GET 요청의 응답에서 검색할 수 있습니다.
<code class="java">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");</code>
이러한 값을 사용자 이름 및 비밀번호와 함께 POST 요청에 통합하면 성공적인 로그인이 보장됩니다.
<code class="java">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();</code>
게다가 userAgent 필드를 GET 및 POST 요청 모두에 추가하면 브라우저가 시뮬레이션되고 수동 로그인 시 수신된 응답과의 일관성이 보장됩니다.
선택적으로 Remember me 필드는 다음을 통해 활성화할 수 있습니다. POST 요청에 다음 줄을 추가합니다:
<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
위 내용은 VIEWSTATE 및 EVENTVALIDATION 값을 통합하여 Jsoup의 로그인 양식 제출 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!