2015-11-08 39 views
-1

我最近試圖建立一個Android應用程序供我上學的朋友,使他們不必使用Web瀏覽器,但一個簡單的應用程序,以檢查他們的更新等級和考試的時間表,但由於學校不會授予使用他們的數據庫的唯一方法是進行HTML解析。 所以我發現這個庫Jsoup和示例,並開始寫我自己的代碼,但它總是帶給我的頁面登錄的頁面的源代碼(它沒有在所有登錄)asp.NET登錄使用HTTP POST方法與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(); 
    } 

返回文檔; }

回答

3

請檢查一下。
結果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()); 
+0

好友保存life.Thanks神有你這樣的人。 1 |#|| 4 | 14 | pageRedirect ||%2fView%2fHome | –

+0

好運。 @arnoldasllani – Hasanaga

+0

@Hananaga我有一點不同的問題。你可以看看https://stackoverflow.com/questions/45499093/login-post-method-to-asp-net-form-using-jsoup。謝謝 – Junaid