【问题标题】:how to submit form without a name for the button using jsoup post request如何使用jsoup发布请求提交没有按钮名称的表单
【发布时间】:2017-08-06 00:34:34
【问题描述】:

我正在尝试将数据发布到网站以使用 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>

这是我的代码:

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

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

【问题讨论】:

  • 到目前为止你尝试了什么?问题出在哪里?请更准确地说您期望会发生什么。
  • 对不起,我是stackoverflow的新手,所以我在完成之前不小心发布了我的问题。现已编辑
  • 如果您的问题得到解决,如果能帮助您找到解决方案,您可以考虑接受我的回答。如果解决方案有所不同,您可以在此处创建自己的答案并在等待一段时间后接受。这将告诉其他人这个问题已经解决,不需要更多关注。当您拥有更多声誉时,您还可以开始对答案和问题进行上下投票。我希望你在这里过得愉快

标签: java android jsoup forms html-post


【解决方案1】:

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

【讨论】:

  • 感谢您的宝贵时间。很抱歉没有提供足够的信息,但我已经检查了你提到的所有内容。我现在通过从请求中删除 ".data("cookieexists", "false")" 来解决我的问题。
猜你喜欢
  • 2015-07-30
  • 1970-01-01
  • 2017-06-23
  • 2015-10-08
  • 2014-10-31
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
相关资源
最近更新 更多