2

我想login进入一个网站,JSOUPlogin使用post请求完成。

对于login,我写了代码:

Document doc = Jsoup.connect("http://www.mysite.com/home")
  .data("username", "myusername")
  .data("pass", "mypassword")
  .userAgent("Mozilla")
  .post();

我能够重定向到网站的主页,我通过以下代码打印 HTML 来确认这一点。

System.out.println(doc.html());

现在该网站已经增强了安全功能,用户在login之后不是将其重定向到主页,而是重定向到要求回答安全问题的页面。

在填写答案textbox并单击submit按钮后,它将用户重定向到主页。

现在,当我通过 尝试相同的事情时JSOUP,上面的相同代码会将我重定向到安全问题页面。

如何填写安全问题的答案并重定向到主页?

我怎样才能做到这一点?提前致谢。

4

2 回答 2

0

您可以使用隐藏的 iframe 加载安全问题页面并在页面中使用 js 填写答案,这会有点复杂,因为您必须先从用户那里获得安全答案,然后再尝试登录。这是可能的,但我会说这是一个糟糕的设计

于 2012-04-23T02:16:16.893 回答
0

按照其他人的建议下载 Firebug 并打开(并启用)NET 面板。在您访问的网站上提交安全问题表单,并POST在 Firebug 中查看请求。你可以像上面那样复制这个请求,Jsoup 应该返回结果响应。

我从来没有使用过 Jsoup 的 .post() 方法,但是以这种方式连接时我总是成功:

Document resultPage;

try {
    resultPage = Jsoup.connect("http://urlHere/")
    .userAgent("Whatever")
    .method(Method.POST)
    .execute()
    .parse();
} catch (IOException e) {
    //Whatever
}

希望能帮助到你!

于 2012-04-20T14:49:58.123 回答