2014-10-19 1 views
2

HtmlUnit 2.15를 사용하여 시나리오를 시뮬레이션하려고합니다. 쿠키가 이전 세션에 저장되었으며 새 세션에서 페이지가 요청 될 때 서버에 보내야합니다. 다음은 그 코드입니다 ...HtmlUnit CookieManager가 첫 번째 요청으로 쿠키를 보내지 않음

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; 
    } 

예상되는 동작 내가 그러나 어떤 쿠키가 수신되지 서버에서 쿠키 "CNAME"를 수신해야합니다. 또한 프록시 (피들러)를 통해 요청을 확인하면 쿠키 요청 헤더가 첫 번째 요청시 웹 클라이언트에 의해 전송되지 않습니다.

누구든지이 과정을 겪었습니까? 내가 HtmlUnit 라이브러리를 디버깅하기 전에 몇 가지 조언을 원한다.

답변

0

사용 this answer (기본적으로 WebRequest 클래스 직접 구축 수동으로 쿠키를 추가 한 다음 웹 클라이언트로 건너)는 "(HtmlUnit과 함께 봄 테스트/WebMVC를 사용 예)하여 설치하지 않는 것을 할 수 있기 때문에, 한 요청에서 다음 요청으로 쿠키를 전달하십시오.

관련 문제