如何使用jsoup post请求提交没有按钮名称的表单

时间:2017-03-15 10:23:07

标签: java android jsoup html-form html-post

我尝试将数据发布到网站,以使用Jsoup登录网站。这是html表单:



    <form action="/user/login" method="POST">
    <table>
    <tr>
      <td><label for="email">E-Mail:</label></td>
      <td><input name="email" value="" /></td>
    </tr>
    <tr>
      <td><label for="password">Passwort:</label></td>
      <td><input name="password" type="password" /></td>
    </tr>
    <tr>
      <td><input type="submit" value="Login" /></td>
    </tr>
    </table>
    </form>
&#13;
&#13;
&#13;

这是我的代码:

 Connection.Response loginForm = Jsoup.connect(LOGINWEBSITE)
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0")
                    .method(Connection.Method.GET)
                    .execute();


            Document login = Jsoup.connect(LOGIN_URL)
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0")
                    .data("cookieexists", "false")
                    .data("email", email)
                    .data("password", password)
                    .cookies(loginForm.cookies())
                    .post();

但它不起作用。对于另一个网站,我只需要为按钮添加一行就可以了。这里它不起作用,因为按钮没有名称。 基本上我想知道如何提交。 我该如何解决这个问题? 非常感谢。

1 个答案:

答案 0 :(得分:0)

通常,您需要首先使用GET请求访问登录页面,以获取发布请求所需的所有Cookie /令牌。我无法为您检查,因为您没有提到您尝试连接的网址。在您的位置,我会在您手动登录时使用浏览器开发人员工具记录网络流量。然后分析实际来回发送的数据。通常,您可以轻松识别需要传递的必要令牌/ cookie以及成功登录的帖子请求。