Jsoup检查登录是否成功

时间:2014-04-18 14:14:23

标签: android jsoup

这是合约。我的一项活动需要输入ID和密码才能登录。我如何检查登录是否成功(主要的想法是检查这样的帐户是否存在,但我无权访问数据库来检查它。所以我需要一个替代方案:如果我能够登录 - 那没关系,如果不是 - 使用消息删除alertDialog并让用户尝试输入正确的数据)。我怎么能用Jsoup做到这一点?

以下是我在AsyncTaskLoader中用来登录和检索一些数据的代码:

Connection.Response response = Jsoup.connect(URL)
                .data("id", paramID, "password", paramPassword)
                .timeout(10000)
                .method(Connection.Method.POST)
                .execute();

        String cookie = response.cookie("JSESSIONID");

            Document document = Jsoup.connect(targetURL)
                    .cookie("JSESSIONID", cookie)
                    .get();

任何想法如何做到这一点?谢谢:))

1 个答案:

答案 0 :(得分:1)

我理解你的问题:您想测试一下您使用的用户名和密码是否有效。

你需要知道两件事:

  1. 成功登录时后续页面的内容。
  2. 如果登录失败,后续页面会是什么样子。
  3. 所以,请使用:

    Document document = Jsoup.connect(targetURL)
        .cookie("JSESSIONID", cookie)
        .get();
    

    这将需要您进行一些调查。您需要检查两个不同的页面,并找到一个或两个页面中存在的单个元素,以便您区分成功登录和登录失败。

    例如,如果您很幸运,您可以像这样比较文档的标题:

    if (document.title().contains("Login Successful or whatever")){
        // DO SOMETHING
    } else if (document.title().contains("Login Unsuccessful or something else")){
        // DO SOMETHING ELSE
    };
    

    就像我说的那样,如果你很幸运的话。否则,您将不得不去调查并检查相应的html页面,并找出一个方便的元素来用来测试这两个页面。

    希望有所帮助。