使用Jsoup的Android登录网站 [英] Android login website with Jsoup

查看:72
本文介绍了使用Jsoup的Android登录网站的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我转到此URL 并获得urlLogin时. 之后,我尝试登录urlLogin.

When I goto this URL and get urlLogin. After which, I'm trying to log into urlLogin.

Document doc = Jsoup.connect("https://www.cgv.vn/vn/theaters/showtimes/").get();

            Element element = doc.getElementById("top_register");

            //Get url login
            String urlLogin = element.childNode(0).attr("href");

            Connection.Response loginForm = Jsoup.connect(urlLogin)
                    .method(Connection.Method.GET)
                    .execute();

            Document document = Jsoup.connect(urlLogin)
                    .data("login[username]", "ABC")
                    .data("login[password]", "ABC")
                    .data("cookieexists", "false")
                    .data("form_key", "WrToMuENMoOq8ZA3")
                    .data("form_key_test", "WrToMuENMoOq8ZA3")
                    .data("send", "")
                    .cookies(loginForm.cookies())
                    .post();

            //a page you want to load after login
            String url = "https://www.cgv.vn/vn/customer/account/";

            Document fpl = Jsoup.connect(url)
                    .timeout(5000)
                    .cookies(loginForm.cookies())
                    .get();
           String body = fpl.body().toString();

            Log.e("test", body);

不幸的是,这只是以未登录状态返回同一页面.我在做什么错了?

Unfortunately, this simply returns the same page in a not-logged-in state. What am I doing wrong?

推荐答案

您可以检查以下几点:

尝试使用您喜欢的浏览器手动登录,并使用开发工具栏或 Fiddler .完成后,使用Jsoup在代码中重现相同的交换.

Try to login manually with your favorite browser and spy its exchanges with the Dev Toolbar or a tool like Fiddler. Once done, reproduce the same exchanges in your code with Jsoup.

确保服务器不会随机生成这些字段.您可能需要从文档中提取它们的值,而不用硬编码它们各自的值.

Ensure these fields aren't generated randomly by the server. You may need to extract their value from the document and not hard code their respective values.

请参见以下两行:

.data("form_key", "WrToMuENMoOq8ZA3") // randomly generated ?
.data("form_key_test", "WrToMuENMoOq8ZA3") // randomly generated ?

3)缺少Cookie

您是否检查了以下语句是否不会产生以后获取https://www.cgv.vn/vn/customer/account/所需的新cookie.

3) Missing cookies

Did you check that the following statements doesn't produce new cookies needed for later fetching https://www.cgv.vn/vn/customer/account/.

Document document = Jsoup.connect(urlLogin)
                .data("login[username]", "ABC")
                .data("login[password]", "ABC")
                .data("cookieexists", "false")
                .data("form_key", "WrToMuENMoOq8ZA3")
                .data("form_key_test", "WrToMuENMoOq8ZA3")
                .data("send", "")
                .cookies(loginForm.cookies())
                .post();

这篇关于使用Jsoup的Android登录网站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆