java – 使用Jsoup提交登录表单时出现问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用Jsoup提交登录表单时出现问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2082字,纯文字阅读大概需要3分钟。
内容图文
![java – 使用Jsoup提交登录表单时出现问题](/upload/InfoBanner/zyjiaocheng/715/ff9cc150a4e64423aaef88e13b64be20.jpg)
出于某种原因,当我使用正确的登录信息时,此代码不会让我进入网站. System.out.println发布登录页面的代码,表明我的代码不起作用.有人能告诉我我忘记了什么或者它有什么问题吗?
public void connect() {
try {
Connection.Response loginForm = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/login.php")
.method(Connection.Method.GET)
.execute();
org.jsoup.nodes.Document document = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php")
.data("cookieexists", "false")
.data("username", "myUsername")
.data("password", "myPassword")
.cookies(loginForm.cookies())
.post();
System.out.println(document);
} catch (IOException ex) {
Logger.getLogger(WebCrawler.class.getName()).log(Level.SEVERE, null, ex);
}
}
解决方法:
除了用户名,密码和cookie之外,该站点还为登录重新获得了两个额外的值 – VIEWSTATE和EVENTVALIDATION.
您可以从第一个Get请求的响应中获取它们,如下所示 –
Document doc = loginForm.parse();
Element e = doc.select("input[id=__VIEWSTATE]").first();
String viewState = e.attr("value");
e = doc.select("input[id=__EVENTVALIDATION]").first();
String eventValidation = e.attr("value");
并在密码后添加(订单并不重要) –
org.jsoup.nodes.Document document = (org.jsoup.nodes.Document) Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php").userAgent("Mozilla/5.0")
.data("myLogin$myUsername", "MyUsername")
.data("myLogin$myPassword, "MyPassword")
.data("myLogin$myLoginButton.x", "22")
.data("myLogin$myLoginButton.y", "8")
.data("__VIEWSTATE", viewState)
.data("__EVENTVALIDATION", eventValidation)
.cookies(loginForm.cookies())
.post();
我还会将userAgent字段添加到两个请求中 – 一些站点对其进行测试并将不同的页面发送到不同的客户端,因此如果您希望获得与浏览器相同的响应,请添加到请求.userAgent(“Mozilla / 5.0“)(或您正在使用的任何浏览器).
编辑
userName的字段名称是myLogin $myUsername,密码是myLogin $myPassword,Post请求还包含有关登录按钮的数据.我无法测试它,因为我在该网站上没有用户,但我相信它会起作用.希望这能解决你的问题.
编辑2
要在登录期间启用“记住我”字段,请将此行添加到发布请求中:
.data("myLogin$myEnableAutoLogin", "on")
内容总结
以上是互联网集市为您收集整理的java – 使用Jsoup提交登录表单时出现问题全部内容,希望文章能够帮你解决java – 使用Jsoup提交登录表单时出现问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。