Jsoup登录aspx它无法正常工作

时间:2017-01-05 17:02:41

标签: java login jsoup .aspxauth

你能帮我用JSoup登录aspx网站吗?

我的代码;

package jsouplogin;

import java.io.IOException;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JSoupLogin {
    public static void main(String[] args) throws IOException {
         Connection.Response loginForm = Jsoup
        .connect("http://login.cu.edu.tr/Login.aspx?ReturnUrl=%2f")
        .method(Connection.Method.GET).execute();

         String userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36";

         Document doc = loginForm.parse();

            String VIEWSTATEvalue = doc.select("input[name=__VIEWSTATE").attr("value");
            String EVENTTARGETvalue = doc.select("input[name=__EVENTTARGET").attr("value");
            String EVENTVARGUMENTvalue = doc.select("input[name=__EVENTARGUMENT").attr("value");
            String EVENTVALIDATIONvalue = doc.select("input[name=__EVENTVALIDATION").attr("value");
            String VIEWSTATEGENERATORvalue = doc.select("input[name=__VIEWSTATEGENERATOR").attr("value");                    

    doc = Jsoup.connect("http://login.cu.edu.tr/default.aspx")
            .referrer("http://www.google.com")
            .userAgent(userAgent)       
            .data("__EVENTTARGET", EVENTTARGETvalue)
            .data("__EVENTARGUMENT", EVENTVARGUMENTvalue)
            .data("__VIEWSTATE", VIEWSTATEvalue)
            .data("__VIEWSTATEGENERATOR", VIEWSTATEGENERATORvalue)
            .data("__EVENTVALIDATION", EVENTVALIDATIONvalue)           
            .data("ctl06$txtKullaniciAdi", "myuserid").data("ctl06$txtSifre", "mypassword")

        .cookies(loginForm.cookies()).post();

    System.out.println(doc);

    }

}

它不是登录网站。我的代码将在运行后加载登录表单。

抱歉,我的英语非常糟糕。

网页来源:view-source:http://login.cu.edu.tr/Login.aspx?ReturnUrl=%2f

1 个答案:

答案 0 :(得分:0)

注意:我现在手头没有Java编译器,所以我只是通过查看你的代码来回答。

对我来说,似乎css选择器的字符串定义是错误的。尝试改变

String VIEWSTATEvalue = doc.select("input[name=__VIEWSTATE").attr("value");

String VIEWSTATEvalue = doc.select("input[name=__VIEWSTATE]").attr("value");
                                                          ^

字符串定义中缺少右括号。对其他字符串也进行此更改。

但我不确定这是否能真正解决您的问题。