59 lines
2.1 KiB
Java
59 lines
2.1 KiB
Java
package cn.celess.common.util;
|
|
|
|
|
|
import com.gargoylesoftware.htmlunit.BrowserVersion;
|
|
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
|
|
import com.gargoylesoftware.htmlunit.Page;
|
|
import com.gargoylesoftware.htmlunit.WebClient;
|
|
import com.gargoylesoftware.htmlunit.html.HtmlPage;
|
|
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* @Author: 小海
|
|
* @Date: 2020-04-23 15:51
|
|
* @Desc:
|
|
*/
|
|
public class HttpUtil {
|
|
/**
|
|
* FIXME
|
|
*/
|
|
public static String get(String urlStr) {
|
|
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
|
|
webClient.getOptions().setCssEnabled(false);
|
|
webClient.getOptions().setJavaScriptEnabled(false);
|
|
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
|
|
webClient.getOptions().setThrowExceptionOnScriptError(false);
|
|
webClient.getOptions().setDownloadImages(false);
|
|
webClient.getOptions().setActiveXNative(false);
|
|
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
|
|
Page clientPage = webClient.getPage(urlStr);
|
|
if (clientPage.isHtmlPage()) {
|
|
return clientPage.toString();
|
|
}
|
|
return null;
|
|
} catch (IOException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* FIXME
|
|
*/
|
|
public static String getAfterRendering(String url) {
|
|
try (final WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED)) {
|
|
webClient.getOptions().setCssEnabled(false);
|
|
webClient.getOptions().setJavaScriptEnabled(true);
|
|
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
|
|
webClient.getOptions().setThrowExceptionOnScriptError(false);
|
|
webClient.getOptions().setDownloadImages(false);
|
|
webClient.getOptions().setActiveXNative(false);
|
|
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
|
|
final HtmlPage page = webClient.getPage(url);
|
|
return page.asXml();
|
|
} catch (IOException e) {
|
|
return null;
|
|
}
|
|
}
|
|
}
|