パラメータの欠落による Jsoup でのログイン フォーム送信エラーを解決するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-20 13:18:02
オリジナル
1064 人が閲覧しました

How to Resolve Login Form Submission Errors in Jsoup Due to Missing Parameters?

Jsoup を使用したログイン フォームの送信に関する問題

提供されたコードの問題は、正しいコードを使用しているにもかかわらず、Web サイトに正常にログインできないことにあります。ログイン認証情報。現在、コードはログイン ページを取得していますが、正常なログインの実行に失敗しています。

根本的な問題は、送信プロセスにユーザー名、パスワード、Cookie 以外の追加パラメーターが必要であることです。具体的には、Web サイトには「VIEWSTATE」と「EVENTVALIDATION」の値が必要です。

解決策

この問題を解決するには、これらの追加の値を最初の応答から取得する必要があります。 GET リクエストは POST リクエストに含まれます。次のコードは、これらの値を取得して組み込む方法を示しています。

<code class="java">Document loginForm = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/login.php")
                .method(Connection.Method.GET)
                .execute()
                .parse();

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

org.jsoup.nodes.Document 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>
ログイン後にコピー

さらに、ブラウザで行う場合と同じサーバー応答を確実に受信できるように、GET リクエストと POST リクエストの両方で userAgent フィールドを設定することをお勧めします。 .

ログイン時に「Remember me」機能を有効にするには、次の行を POST リクエストに組み込みます:

<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
ログイン後にコピー

以上がパラメータの欠落による Jsoup でのログイン フォーム送信エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート