Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HtmlUnit CookieManager未在第一次请求时发送Cookie_Java_Cookies_Webclient_Htmlunit - Fatal编程技术网

Java HtmlUnit CookieManager未在第一次请求时发送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);

我正在尝试使用HtmlUnit 2.15模拟一个场景,其中Cookie将在前一个会话中保存,并在新会话中请求页面时发送到服务器。 这是它的代码

    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从一个请求“传递”到下一个请求