如何解决基本JSoup表单提交
我的表单提交似乎不起作用,我试过 JAunt 它能够提交,所以在使用 JSoup 时我不明白为什么它返回 404
。
Connection.Response response = Jsoup.connect("https://crawlertest284814019.wordpress.com/contact/#contact-form-7")
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.data("name","nameeee")
.method(Connection.Method.POST)
.execute();
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
我尝试过:
- 网址
https://crawlertest284814019.wordpress.com/contact/
- 数据
"name","nameeee"
产生 404 状态 - 数据
"g7-name","nameeee"
没有问题但没有提交 - 数据
"Name","nameeee"
没有问题但没有提交 - 带有 Map
的数据没有问题但没有提交
解决方法
正如@Pshemo 所指出的,代码没问题,但是缺少传递的数据。这些隐藏字段包含提交有效所需的信息。在这个问题的情况下,隐藏字段是:
<input type="hidden" id="_wpnonce" name="_wpnonce" value="4d18e01372">
<input type="hidden" name="_wp_http_referer" value="/contact/">
<input type="hidden" name="contact-form-id" value="7">
<input type="hidden" name="action" value="grunion-contact-form">
<input type="hidden" name="contact-form-hash" value="07cbf543790375cf26022ad8826a8dbb8787beae">
因此,除了必填字段外,请确保也提交一次隐藏的字段。
Document document = Jsoup.connect("https://crawlertest284814019.wordpress.com/contact/#contact-form-7")
.data("g7-name","Super sName")
.data("_wpnonce","4d18e01372")
.data("_wp_http_referer","/contact/")
.data("action","grunion-contact-form")
.data("contact-form-id","7")
.data("contact-form-hash","07cbf543790375cf26022ad8826a8dbb8787beae")
.post();
,
状态代码 404 是客户端错误,您的输入有问题。 请参阅以下链接,它将解决您的问题。 How to post form login using jsoup?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。