如何使用具有POST请求的JSOUP重定向到主页?

时间:2012-04-13 09:58:35

标签: java html post html-parsing jsoup

我想login使用JSOUP进入网站,login使用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尝试相同的操作时,上面相同的代码会将我重定向到安全问题页面。

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

我怎么能做到这一点? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

Document resultPage;

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

希望它有所帮助!

答案 1 :(得分:0)

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