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