Java HtmlUnit CookieManager未在第一次请求时发送Cookie
我正在尝试使用HtmlUnit 2.15模拟一个场景,其中Cookie将在前一个会话中保存,并在新会话中请求页面时发送到服务器。 这是它的代码Java HtmlUnit CookieManager未在第一次请求时发送Cookie,java,cookies,webclient,htmlunit,Java,Cookies,Webclient,Htmlunit,我正在尝试使用HtmlUnit 2.15模拟一个场景,其中Cookie将在前一个会话中保存,并在新会话中请求页面时发送到服务器。 这是它的代码 String url = "http://localhost:55545/"; String domain = "localhost:55545"; java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
String url = "http://localhost:55545/";
String domain = "localhost:55545";
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
CookieManager cookieManager = webClient.getCookieManager();
cookieManager.setCookiesEnabled(true);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 1);
Cookie cookie = new Cookie(domain, "cName", "cValue", "/", cal.getTime(), false);
cookieManager.addCookie(cookie);
webClient.setCookieManager(cookieManager);
HtmlPage page = null;
try {
page = webClient.getPage(url);
} catch (FailingHttpStatusCodeException e) {
System.err.print(e.toString());
return;
} catch (MalformedURLException e) {
System.err.print(e.toString());
return;
} catch (IOException e) {
System.err.print(e.toString());
return;
}
预期的行为是我应该在服务器上接收cookie“cName”,但是那里没有收到cookie。通过代理(fiddler)验证请求时,我发现webclient在第一次请求时没有发送Cookie头
有人经历过吗?希望在我进入调试HtmlUnit库之前能得到一些建议。根据
在限制cookie的范围时,不考虑域中的端口(主机名)。
从域中删除端口就成功了。使用(基本上是自己构建WebRequest,手动添加Cookie,然后将其传递给WebClient),因为您的设置(例如使用Spring Test/WebMVC和HtmlUnit)可能不会将Cookie从一个请求“传递”到下一个请求