HttpClient
是一個較低級別的庫,用於發送HTTP請求並檢索響應。
HtmlUnit
是在一個較高的水平,並在內部使用HttpClient
使HTTP請求,也處理JavaScript(通過Rhino
和內部DOM實現),XPath的(通過Xalan
),CSS(通過CSSParser
),畸形的HTML(通過NekoHtml
)的WebSockets(通過Jetty
)等
您可以像修改HtmlUnit
的傳出請求和響應:
new WebConnectionWrapper(webClient) {
public WebResponse getResponse(WebRequest request) throws IOException {
WebResponse response = super.getResponse(request);
if (request.getUrl().toExternalForm().contains("my_url")) {
String content = response.getContentAsString("UTF-8");
//change content
WebResponseData data = new WebResponseData(content.getBytes("UTF-8"),
response.getStatusCode(), response.getStatusMessage(), response.getResponseHeaders());
response = new WebResponse(data, request, response.getLoadTime());
}
return response;
}
};
一s暗示here。
您可以通過覆蓋HttpWebConnection.createHttpClient()
來更改HttpClient
中的。
您可以POST
要求是:
WebRequest webRequest = new WebRequest(url, HttpMethod.POST);
HtmlPage page = webClient.getPage(webRequest);
涼爽的例子很好的回答。 – vanloc