2014-10-14 1 views
0

Я пытаюсь получить доступ к этому 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; 
} 

Является ли это источником моих проблем? Если это так, есть ли способ избежать этого? Может быть, игнорировать/устранить причину проблемы?

ответ

1

Фактически, чтобы исправить проблему, я просто включил файлы cookie. Я предполагаю, что нужно было загрузить страницу.

Код:

webClient.getCookieManager().setCookiesEnabled(true);