Cabaran yang Dihadapi dalam Menghantar Borang Log Masuk dengan Jsoup
Walaupun memasukkan bukti kelayakan log masuk yang sah, anda mungkin menghadapi kesukaran untuk mengakses tapak menggunakan kod yang disediakan. Selepas pelaksanaan, kod gagal untuk mengesahkan, menunjukkan kemungkinan isu.
Satu kemungkinan pengawasan berkaitan dengan keperluan nilai tambahan di luar nama pengguna, kata laluan dan kuki. Khususnya, tapak tersebut memerlukan kemasukan VIEWSTATE dan EVENTVALIDATION.
Untuk menangani perkara ini, dapatkan nilai ini daripada respons permintaan GET awal:
<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>
Sertakan nilai ini ke dalam POST berikutnya permintaan:
<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>
Sertakan medan userAgent untuk memastikan keserasian dengan pemaparan khusus pelayar tapak.
Peningkatan
Untuk mengaktifkan "ingat ciri saya" semasa log masuk:
<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
Atas ialah kandungan terperinci Cara Mengatasi Isu Pengesahan Semasa Menghantar Borang Log Masuk dengan Jsoup. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!