使用Jsoup登录网站并留在网站上

Att*_*oth 3 java post android http jsoup

我尝试登录这里:http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp :

Connection.Response loginForm = Jsoup.connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
            .method(Connection.Method.GET)
            .execute();

Document doc = Jsoup.connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
            .data("name","myid")
            .data("name","mycode")
            .cookies(loginForm.cookies())
            .post();
Run Code Online (Sandbox Code Playgroud)

之后,获取我必须登录的页面的html,我意识到我无法登录.有没有办法登录然后获取我现在可以访问的页面的HTML?任何链接,建议或帮助表示赞赏.

Alk*_*ris 5

您对两个不同的输入标记使用相同的键.而且你使用的钥匙是错误的.

.data("jelszo","SOMETEXT")
.data("felnev","PASSWORD")
Run Code Online (Sandbox Code Playgroud)

更新

Connection.Response initial = Jsoup
        .connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
        .method(Connection.Method.GET).execute();

Connection.Response login = Jsoup
        .connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
        .data("jelszo","SOMETEXT")
        .data("felnev","PASSWORD")
        .cookies(initial.cookies())
        .method(Method.POST)
        .execute();

Document page = Jsoup
        .connect("ANY_PAGE_INSIDE_THE_SITE")
        .cookies(login.cookies()) //use this with any page you parse. it will log you in
        .get();
Run Code Online (Sandbox Code Playgroud)


Att*_*oth 1

好吧,实际上我发现我还需要一个参数(“akcio”),并且我将 post() 方法发送到了错误的 URL,现在我的程序运行正常,我的代码:

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

    Map<String, String> loginCookies = loginForm.cookies();

    Document document = Jsoup
        .connect(loginFormUrl)
        .data("akcio", akcio)
        .data("felnev",felnev)
        .data("jelszo",jelszo)
        .cookies(loginCookies)
        .post();

    Document document2 = Jsoup.connect(loggedInUrl)
    .cookies(loginCookies)
    .get();
    System.out.println(document2);
Run Code Online (Sandbox Code Playgroud)