HtmlUnit会话管理

时间:2012-10-22 05:21:59

标签: htmlunit sessionid

我正在尝试使用HtmlUnit登录Facebook页面并查看其HTML内容。我正在尝试通过HtmlUnit填写登录凭据,但是当点击提交按钮时我没有看到会话正在进行。

无法在htmlunit会话管理类中找到更多内容。我还附加了我正在使用的代码来尝试此问题。任何帮助表示赞赏!

WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage("https://www.facebook.com");
List<HtmlForm> listF = page1.getForms();
HtmlForm form = null;
for(int i=0; i<listF.size(); i++)
{
    if(listF.get(i).getId().equals("login_form"))
    {
        form = listF.get(i);
        }
}
HtmlTextInput uName = form.getInputByName("email");
HtmlPasswordInput passWord = form.getInputByName("pass");
HtmlSubmitInput button = form.getInputByValue("Log In");
uName.setValueAttribute(FACEBOOK_UNAME);
passWord.setValueAttribute(FACEBOOK_PASS);
HtmlPage page2 = button.click();

2 个答案:

答案 0 :(得分:9)

找到答案。刚开始获取网页之前启用了Cookie。有用。 添加了以下代码

WebClient webClient = new WebClient();
CookieManager cookieMan = new CookieManager();
cookieMan = webClient.getCookieManager();
cookieMan.setCookiesEnabled(true);

答案 1 :(得分:0)

另一个建议是,如果您尝试在HtmlUnit中还原HTTP会话,而不是使用webClient.getCookieManager().addCookie(cookie);,请改用它:

webClient.addCookie("cookieName=cookieValue", URL, null);