我在这里发布,因为我在我的智慧结束。我使用Jsoup发布用于登录的HTML数据。奇怪的是,我可以在表单中输入数据,按登录,并从网站获得回应。但是,即使使用正确的登录凭据,该网站也告诉我,我无法登录。我有几个想法,为什么这是这样的:发布一个JSOUP文档登录到网站
1)HTTPS://在我试图连接的URL之前,我读过,有时Jsoup在验证SSL证书时遇到了问题。
2)我知道cookies是一个问题。在登录本网站后,当我在Chrome上使用开发人员选项时,当我打印出Connection.Response的Cookie时,就会出现一个Cookie。
3)当我尝试登录后使用Jsoup打印出生成的文档时,出现了一个奇怪的“注意:您的数据没有丢失,使用SSL安全登录后会发布”。我不知道这意味着什么,显然Google也没有。
为了保持安全性,我已经删除了我要连接的实际URL,但下面的代码仍应该具有某种意义。
String encodeUser = URLEncoder.encode(username, "UTF-8");
String encodePass = URLEncoder.encode(password, "UTF-8");
Connection.Response loginForm = Jsoup.connect("https://----")
.method(Method.GET)
.userAgent("Mozilla/5.0")
.execute();
Log.v("Miles", String.valueOf(loginForm.cookies()));
Document homeDoc = Jsoup.connect("--------")
.cookie("T3Version", loginForm.cookie("T3Version"))
.data("_name", encodeUser, "_pass", encodePass, "_login", "in")
.referrer("https://web.wm.edu/studenthappenings/preview.php")
.userAgent("Mozilla/5.0")
.method(Connection.Method.POST)
.timeout(1000)
.post();
Log.v("Miles", String.valueOf(loginForm.cookies()));
System.out.println(homeDoc.body());
if (homeDoc.body().html().contains("Cannot perform login")){
Log.v("Miles", "Cannot perform login");
}
它总是进入,如果循环和打印日志。
帮助?我会很乐意提供更多信息,因为在为我的愚蠢问题设计解决方案时可能需要它。