html加cookie强制,如何将Cookie添加到HtmlUnit请求标头?

我正在尝试访问网站,但无法将收集到的“ Cookie”添加到传出的POST请求标头中。我已经能够验证它们是否存在于CookieManager中。

HtmlUnit的任何替代方法也将不胜感激。

public static void main( String[] args )

{

// Turn off logging to prevent polluting the output.

Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);

try {

final WebClient webClient = new WebClient(BrowserVersion.CHROME);

webClient.getOptions().setCssEnabled(false);

CookieManager cookieManager = webClient.getCookieManager();

out.println(cookieManager.getCookies().toString());

out.println("start");

final HtmlPage loginPage = webClient.getPage("my_url");

Map, ?> additionalRequest1 = loginPage.getWebResponse().getWebRequest().getAdditionalHeaders();

Iterator> ite0 = additionalRequest1.entrySet().iterator();

while(ite0.hasNext()){

out.println(ite0.next());

}

out.println("\n");

out.println("after loginPage");

out.println(cookieManager.getCookies().toString());

Set cookies = new HashSet();

cookies.addAll(webClient.getCookieManager().getCookies());

StringBuilder cookieHeader = new StringBuilder();

Iterator ite = cookies.iterator();

while (ite.hasNext()){

Cookie cookie = ite.next();

cookie.getDomain().substring(1);

String name = cookie.getName();

String value = cookie.getValue();

System.out.println("Cookie:" + name + "=" +value);

webClient.addRequestHeader(name, value);

}

final HtmlTextInput login = (HtmlTextInput) loginPage.getElementById("login");

login.setValueAttribute(USER_EMAIL);

final HtmlPasswordInput password = (HtmlPasswordInput) loginPage.getElementById("password");

password.setValueAttribute(USER_PASS);

final HtmlSubmitInput button_submit = loginPage.getElementByName("login_submit");

final HtmlPage accessGrantingPage = button_submit.click();

final HtmlForm requestForm = (HtmlForm)accessGrantingPage.getElementById("consent_form");

Map, ?> additionalRequest = accessGrantingPage.getWebResponse().getWebRequest().getAdditionalHeaders();

Iterator> ite2 = additionalRequest.entrySet().iterator();

while(ite2.hasNext()){

out.println(ite2.next());

}

out.println("\n");

out.println("after accessGrantingPage");

out.println(cookieManager.getCookies().toString());

final HtmlButton consent_accept_button = accessGrantingPage.getElementByName("consent_accept");

try {

final HtmlPage authorizationPage = consent_accept_button.click();

out.println("after authorizationPage");

out.println(authorizationPage.getUrl().toString());

out.println(authorizationPage.getWebResponse().getStatusMessage());

out.println(authorizationPage.getWebResponse().getResponseHeaders());

} catch (RuntimeException re){

re.printStackTrace();

}

webClient.closeAllWindows();

} catch (IOException ioe){

ioe.printStackTrace();

} finally {

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值