Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menyelesaikan Ralat Penyerahan Borang Log Masuk dalam Jsoup Kerana Parameter yang Hilang?

Bagaimana untuk Menyelesaikan Ralat Penyerahan Borang Log Masuk dalam Jsoup Kerana Parameter yang Hilang?

Linda Hamilton
Lepaskan: 2024-10-20 13:18:02
asal
1131 orang telah melayarinya

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

Masalah dengan Penyerahan Borang Log Masuk Menggunakan Jsoup

Isu dengan kod yang disediakan terletak pada ketidakupayaannya untuk berjaya log masuk ke tapak web walaupun menggunakan yang betul kelayakan log masuk. Kod pada masa ini mendapatkan semula halaman log masuk tetapi gagal melaksanakan log masuk yang berjaya.

Masalah asas ialah proses penyerahan memerlukan parameter tambahan di luar nama pengguna, kata laluan dan kuki. Khususnya, tapak web memerlukan nilai "VIEWSTATE" dan "EVENTVALIDATION".

Penyelesaian

Untuk menyelesaikan isu ini, nilai tambahan ini mesti diambil daripada respons yang pertama DAPATKAN permintaan dan disertakan dalam permintaan POST. Kod berikut menunjukkan cara untuk mendapatkan dan menggabungkan nilai ini:

<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>
Salin selepas log masuk

Selain itu, disyorkan untuk menetapkan medan userAgent dalam kedua-dua permintaan GET dan POST untuk memastikan anda menerima respons pelayan yang sama seperti yang anda lakukan dengan penyemak imbas .

Untuk mendayakan ciri "Ingat saya" semasa log masuk, masukkan baris berikut ke dalam permintaan POST:

<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Penyerahan Borang Log Masuk dalam Jsoup Kerana Parameter yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan