Java HTMLUNIT-为Ajax请求发送Cookie时出现问题
一、 我正在使用HtmlUnit 2.43版。 当我点击按钮时,一个函数javascript被调用。这个函数创建一个链接(新url),这个新页面需要Cookie(JSESSIONID),执行后,结果显示在标记DIV中。 但我什么都试过了,但我做不到。 请有人帮帮我 代码: WebClient客户端=新的WebClient(BrowserVersion.CHROME); WebClientOptions=client.getOptions()Java HTMLUNIT-为Ajax请求发送Cookie时出现问题,java,ajax,spring-boot,cookies,htmlunit,Java,Ajax,Spring Boot,Cookies,Htmlunit,一、 我正在使用HtmlUnit 2.43版。 当我点击按钮时,一个函数javascript被调用。这个函数创建一个链接(新url),这个新页面需要Cookie(JSESSIONID),执行后,结果显示在标记DIV中。 但我什么都试过了,但我做不到。 请有人帮帮我 代码: WebClient客户端=新的WebClient(BrowserVersion.CHROME); WebClientOptions=client.getOptions() CookieManager CookieManager
CookieManager CookieManager=client.getCookieManager();
cookieManager.setCookiesEnabled(true);
客户。setCookieManager(cookieManager);
client.getOptions().setJavaScriptEnabled(true);
setAjaxController(新的NicelyResynchronizingAjaxController());
client.getOptions().setThroweExceptionOnScriptError(false);
client.getOptions().setThroweExceptionOnFailingStatusCode(false);
client.getOptions().setCssEnabled(false);
HtmlTextInput inputCaptcha=paginafterconsultaidentiicadorcaptcha.querySelector(“input[name='questionCL']”);
inputCaptcha.setValueAttribute(“gr5w4”);
HtmlPage paginaInfLote=((HtmlButtonInput)paginafterconsultaidentiicadorchap.getElementById(“botao_continuar”)。单击();
setJavaScriptTimeout(10000);
System.out.println(paginaInfLote.asXml());
迭代器索引=cookies4.Iterator();
while(index.hasNext()){
vSessionId=index.next().toString();
System.out.println(index.next());
打破
}
字符串vValueCookie=vsSessionID.substring(11,vsSessionID.indexOf(“;”);
日期dt=新日期();
Calendar c=Calendar.getInstance();
c、 设定时间(dt);
c、 添加(日历日期,1);
dt=c.getTime();
Cookie Cookie=新的Cookie(“www.licitacoes-e.com.br”,“JSESSIONID”,vValueCookie,“/”,dt,false);
cookieManager.addCookie(cookie);
客户。setCookieManager(cookieManager);
Cookie处理应自动完成。请在HtmlUnit Github上打开一个问题。请使用Charles web proxy之类的工具,确保HtmlUnit发送的请求与reals浏览器有任何区别。如果你能指出这样一个问题,我可以复制它,那么我很有可能解决它。首先感谢你的回答!我将安装Charles代理并在这里显示此结果。请使用github问题来沟通所有细节。
CookieManager cookieManager = client.getCookieManager();
cookieManager.setCookiesEnabled(true);
client.setCookieManager(cookieManager);
client.getOptions().setJavaScriptEnabled(true);
client.setAjaxController(new NicelyResynchronizingAjaxController());
client.getOptions().setThrowExceptionOnScriptError(false);
client.getOptions().setThrowExceptionOnFailingStatusCode(false);
client.getOptions().setCssEnabled(false);
HtmlTextInput inputCaptcha = paginaAfterConsultaIdentificadorCaptcha.querySelector("input[name='questionCL']");
inputCaptcha.setValueAttribute("gr5w4");
HtmlPage paginaInfLote = ((HtmlButtonInput) paginaAfterConsultaIdentificadorCaptcha.getElementById("botao_continuar")).click();
client.setJavaScriptTimeout(10000);
System.out.println(paginaInfLote.asXml());
<!-- I tried set to new cookie: -->
Iterator<Cookie> index = cookies4.iterator();
while (index.hasNext()) {
vSessionId = index.next().toString();
System.out.println(index.next());
break;
}
String vValueCookie = vSessionId.substring(11, vSessionId.indexOf(";"));
Date dt = new Date();
Calendar c = Calendar.getInstance();
c.setTime(dt);
c.add(Calendar.DATE, 1);
dt = c.getTime();
Cookie cookie = new Cookie("www.licitacoes-e.com.br", "JSESSIONID", vValueCookie, "/", dt, false);
cookieManager.addCookie(cookie);
client.setCookieManager(cookieManager);
<!-- Fim set cookie -->