private void doTestNegative(final int status, boolean strict) throws Exception {
ResponseFilter responseFilter = new ResponseFilter() {
@Override
public <T> FilterContext<T> filter(FilterContext<T> ctx) {
ctx.getResponseHeaders().get("x-expect-post");
ctx.getRequest().getHeaders().add("x-expect-post", "true");
ctx.getRequest().getHeaders().remove("x-redirect");
return ctx;
}
};
try (AsyncHttpClient p = asyncHttpClient(config().setFollowRedirect(true).setStrict302Handling(strict).addResponseFilter(responseFilter))) {
Request request = post(getTargetUrl()).addFormParam("q", "a b").addHeader("x-redirect", +status + "@" + "http://localhost:" + port1 + "/foo/bar/baz").addHeader("x-negative", "true").build();
Future<Integer> responseFuture = p.executeRequest(request, new AsyncCompletionHandler<Integer>() {
@Override
public Integer onCompleted(Response response) {
return response.getStatusCode();
}
@Override
public void onThrowable(Throwable t) {
t.printStackTrace();
fail("Unexpected exception: " + t.getMessage(), t);
}
});
int statusCode = responseFuture.get();
assertEquals(statusCode, 200);
}
}