Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jsoup登录网站并停留在该网站上_Java_Android_Http_Post_Jsoup - Fatal编程技术网

Java 使用Jsoup登录网站并停留在该网站上

Java 使用Jsoup登录网站并停留在该网站上,java,android,http,post,jsoup,Java,Android,Http,Post,Jsoup,我尝试在此处登录: 为此: 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/

我尝试在此处登录: 为此:

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();

之后,我得到了一个我必须登录才能看到的页面的html,我意识到我无法登录。有没有办法登录,然后获取我现在可以访问的页面的html?感谢您的链接、建议或帮助。

您使用相同的键来创建两个不同的输入标签。此外,你使用的钥匙是错误的

.data("jelszo","SOMETEXT")
.data("felnev","PASSWORD")
更新

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();

好的,实际上我发现我还需要一个参数(“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);
Connection.Response loginForm=Jsoup.connect(loginFormUrl)
.method(Connection.method.GET)
.execute();
Map loginCookies=loginForm.cookies();
Document=Jsoup
.connect(loginFormUrl)
.数据(“akcio”,akcio)
.数据(“费尔尼夫”,费尔尼夫)
.data(“jelszo”,jelszo)
.cookies(loginCookies)
.post();
documentdocument2=Jsoup.connect(loggedInUrl)
.cookies(loginCookies)
.get();
系统输出打印LN(文件2);

是的,很好,谢谢。现在我不知道如何在保持登录的同时转到另一个页面?我已经更新了我的帖子。如果这解决了你的问题,请不要忘记接受答案