我尝试使用jsoup登录“ http://pawscas.usask.ca/cas-web/login”后获取信息。我已经尝试了下面的内容,但它似乎没有用,任何帮助将不胜感激,谢谢。

Connection.Response res = null;
    try {
        res = Jsoup.connect("http://pawscas.usask.ca/cas-web/login")
            .data("username", "user")
            .data("password", "pass")
            //.data("It", "some data")
            //.data("execution", "some data")
            //.data("_eventId", "submit")
            .method(Method.POST)
            .execute();
    } catch (IOException e) {
        e.printStackTrace();
    }

     //System.out.println(res.cookies());

    //This will get you cookies
    Map<String, String> loginCookies = res.cookies();

    Document doc = null;
    try {
        doc = Jsoup.connect("https://paws5.usask.ca/web/home-community#mycourses")
          .cookies(loginCookies)
          .get();
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println(doc.toString());

最佳答案

尝试这个伙伴,基本上问题似乎是您随请求提供的数据不足,您需要包括所有输入字段。

其中两个输入是一个随机生成的数字,似乎与您的会话相关联(一个名为ltexecution的数字),因此首先需要获取它们,然后将其与数据一起传递。

Connection.Response initialResponse = null;
    try {
        // get "lt" and "execution" value
        initialResponse = = Jsoup.connect("http://pawscas.usask.ca/cas-web/login").method(Method.GET).execute();
        Document doc = initialResponse.parse();

        // get lt
        Element lt = doc.select("input[name=lt]").first();
        String ltVal = lt.attr("value");

        // get execution
        Element execution = doc.select("input[name=execution]").first();
        String executionVal = execution.attr("value");

        // get cookies
        Map<String, String> cookies = initialResponse.cookies();

        // now do the login
        res = Jsoup.connect("http://pawscas.usask.ca/cas-web/login")
            .data("username", "user")
            .data("password", "pass")
            .data("lt", ltVal)
            .data("execution", executionVal)
            .data("_eventId", "submit")
            .cookies(cookies)
            .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36")
            .method(Method.POST)
            .execute();
    } catch (IOException e) {
        e.printStackTrace();
    }

     //System.out.println(res.cookies());

    cookies.putAll(res.cookies());

    Document doc = null;
    try {
        doc = Jsoup.connect("https://paws5.usask.ca/web/home-community#mycourses")
          .cookies(cookies)
          .get();
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println(doc.toString());

10-02 06:31