import org.apache.http.entity.ByteArrayEntity; //导入方法依赖的package包/类
@Test
public void testFiltering() throws Exception {
// Set up some large data to make sure we get chunked encoding on post
byte[] largeData = new byte[20000];
for (int i = 0; i < largeData.length; i++) {
largeData[i] = 1;
}
final HttpPost request = new HttpPost("/");
request.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
// request.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
// 15000);
final ByteArrayEntity entity = new ByteArrayEntity(largeData);
entity.setChunked(true);
request.setEntity(entity);
DefaultHttpClient httpClient = new DefaultHttpClient();
final HttpHost proxy = new HttpHost("127.0.0.1", proxyServer.getListenAddress().getPort(), "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
proxy);
final org.apache.http.HttpResponse response = httpClient.execute(
new HttpHost("127.0.0.1",
webServerPort), request);
assertEquals("Received 20000 bytes\n",
EntityUtils.toString(response.getEntity()));
assertEquals("Filter should have seen only 1 HttpRequest", 1,
numberOfInitialRequestsFiltered.get());
assertThat("Filter should have seen 1 or more chunks",
numberOfSubsequentChunksFiltered.get(), greaterThanOrEqualTo(1));
}