簡體   English   中英

使用帶有jsoup的HTTP post方法登錄asp.net

[英]asp.NET login using HTTP post method with jsoup

我最近正嘗試為我的學校朋友開發一個Android應用程序,這樣他們就不必使用網絡瀏覽器,而是一個簡單的應用程序來檢查其更新的成績和考試時間表,但是由於學校不會授予使用其數據庫的許可,因此唯一的方法是進行HTML解析。 所以我找到了這個庫Jsoup和一個示例,並開始編寫自己的代碼,但是它總是帶給我頁面登錄頁面的源代碼(它根本不會登錄)

public Document getHTMLsoure() {
Document doc=null;
    try {
         doc = Jsoup.connect("http://karinca.meliksah.edu.tr")
                 .data("ctl00$ContentPlaceHolder1$txtKullaniciAdi","usernm")
                .data("ctl00$ContentPlaceHolder1$txtSifre", "passwd")
                .data("ctl00$ContentPlaceHolder1$btnLogin", "Giriş")


                .userAgent("Mozilla")

                .post();
    } catch (IOException e1) {
        e1.printStackTrace();
    }

返回文件; }

請檢查一下。
結果Kullanıcı adı yada şifre hatası !

Response res = Jsoup
        .connect("https://karinca.meliksah.edu.tr/View/Login")
        .userAgent("Mozilla")
        .execute();

Document doc = res.parse();

String eventArgument = doc.select("input[name=__EVENTARGUMENT]").val();
String viewState = doc.select("input[name=__VIEWSTATE]").val();
String viewStateGenerator = doc.select("input[name=__VIEWSTATEGENERATOR]").val();
String eventValidation = doc.select("input[name=__EVENTVALIDATION]").val();
String asyncPost = "true";

String ct = "";

String body = doc.body().html();

int indexOf = body.indexOf("Sys.WebForms.PageRequestManager._initialize(");;
if(indexOf > -1){

    int indexEnd = body.substring(indexOf).indexOf("');");

    if(indexEnd > -1){

        String temp  = body.substring(indexOf, indexOf+indexEnd);
        int indexStart = temp.lastIndexOf("'");
        ct = temp.substring(indexStart+1,temp.length());
    }
}

Document   doc1 = Jsoup.connect("https://karinca.meliksah.edu.tr/View/Login.aspx")

    .referrer("https://karinca.meliksah.edu.tr/View/Login")
    .cookies(res.cookies())
    .data(ct+"$ContentPlaceHolder1$ScriptManager2",ct+"$ContentPlaceHolder1$UpdatePanel1|"+ct+"$ContentPlaceHolder1$btnLogin")
    .data(ct+"$ContentPlaceHolder1$txtKullaniciAdi","usernm")
    .data(ct+"$ContentPlaceHolder1$txtSifre", "passwd")
    .data("__EVENTTARGET",ct+"$ContentPlaceHolder1$btnLogin")
    .data("__EVENTARGUMENT",eventArgument)
    .data("__VIEWSTATE",viewState)
    .data("__VIEWSTATEGENERATOR",viewStateGenerator)
    .data("__EVENTVALIDATION",eventValidation)
    .data("__ASYNCPOST",asyncPost)
    .userAgent("Mozilla")
    .post();


System.out.println(doc1.html());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM