Я пытаюсь получить доступ к этому Ajaxpage в моей Java программе с использованием HtmlUnit 2.15 API, но он терпит неудачу при попытке получить страницу. Я думаю, что причиной является запрос веб-сайта на этот сломанный/отсутствующий file, расположенный here.Как получить веб-страницу, содержащую ошибки с помощью HtmlUnit?
Мой код:
public class HtmlUnitExample {
public static void main(String[] args) throws Exception, FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
webClient.getOptions().setTimeout(120000);
webClient.waitForBackgroundJavaScript(60000);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setDoNotTrackEnabled(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
String url = "http://www.santanderuniversidades.com.br/JuriPopular/index.aspx?idprojeto=16";
final HtmlPage page = (HtmlPage) webClient.getPage(url); //Fails here
System.out.println(page.asXml());
}
}
Сообщение об ошибке: ссылка
Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:116)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:68)
at com.gargoylesoftware.htmlunit.HttpWebConnection.downloadContent(HttpWebConnection.java:693)
at com.gargoylesoftware.htmlunit.HttpWebConnection.downloadResponseBody(HttpWebConnection.java:675)
at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:201)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1313)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1230)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:338)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:407)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:392)
at HtmlUnitExample.main(HtmlUnitExample.java:42)//getPage line
Страница в css:
<link href='/JuriPopular/App_Themes/estilo/css.axd?files=jPages.css,estilo.css,jquery.fancybox.css' type='text/css' rel='stylesheet' />
CSS-код, который вызывает отсутствующий шрифт file:
@font-face{font-family:'DigitalDotRoadsign';
src:url('fonts/DigitalDotRoadsign.eot');
src:url('fonts/DigitalDotRoadsign.eot?#iefix') format('embedded-opentype'),
url('fonts/DigitalDotRoadsign.woff') format('woff'), //call missing file
url('fonts/DigitalDotRoadsign.ttf') format('truetype'),
url('fonts/DigitalDotRoadsign.svg#svgDigitalDotRoadsign') format('svg');
font-weight:normal;
}
Является ли это источником моих проблем? Если это так, есть ли способ избежать этого? Может быть, игнорировать/устранить причину проблемы?