"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > व्यूस्टेट और ईवेंटवैलिडेशन पैरामीटर गुम होने के कारण Jsoup लॉगिन फॉर्म सबमिशन संबंधी समस्याओं का समाधान कैसे करें?

व्यूस्टेट और ईवेंटवैलिडेशन पैरामीटर गुम होने के कारण Jsoup लॉगिन फॉर्म सबमिशन संबंधी समस्याओं का समाधान कैसे करें?

2024-11-25 को प्रकाशित
ब्राउज़ करें:194

How to Resolve Jsoup Login Form Submission Issues Due to Missing VIEWSTATE and EVENTVALIDATION Parameters?

Jsoup लॉगिन फॉर्म सबमिशन समस्याओं का निवारण

समस्या विवरण:

सही लॉगिन क्रेडेंशियल का उपयोग करने के बावजूद, Jsoup कोड नीचे पोस्ट किया गया लॉगिन पृष्ठ का HTML कोड प्रदर्शित करते हुए, लक्ष्य वेबसाइट में लॉग इन करने में विफल रहता है इसके बजाय।

public void connect() {

    try {
        Connection.Response loginForm = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/login.php")
                .method(Connection.Method.GET)
                .execute();

        org.jsoup.nodes.Document document = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php")
                .data("cookieexists", "false")
                .data("username", "myUsername")
                .data("password", "myPassword")
                .cookies(loginForm.cookies())
                .post();
        System.out.println(document);
    } catch (IOException ex) {
        Logger.getLogger(WebCrawler.class.getName()).log(Level.SEVERE, null, ex);
    }
}

समाधान:

उपयोगकर्ता नाम, पासवर्ड और कुकीज़ के अलावा, लक्ष्य वेबसाइट को लॉगिन के लिए दो अतिरिक्त मानों की आवश्यकता होती है: व्यूस्टेट और ईवेंटवैलिडेशन। इन मानों को प्राप्त करने के लिए:

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");

फिर, इन मानों को पोस्ट अनुरोध में जोड़ें (ऑर्डर मायने नहीं रखता):

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();

"रिमेम्बर मी" सुविधा को सक्षम करने के लिए, जोड़ें:

.data("myLogin$myEnableAutoLogin", "on")

इन संशोधनों के साथ, लॉगिन अब उम्मीद के मुताबिक सफल होना चाहिए।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729401319 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3