Java - AsyncHttpClient - 中止正在进行的异步调用

Java - AsyncHttpClient - aborting ongoing asynchronous call

我正在使用 HttpAsyncClient 以便 GET 某些网址。在某些情况下,假设当我收到状态 HTTP-304 时,我想放弃正在进行的通话。我不想等body,我不想把机器资源花在上面。有什么办法可以取消这个吗?显然 futureResponse.cancel(true)futureResponse.finalize() 之类的东西不起作用。

Future<Response> futureResponse = httpClient.prepareGet("some-url").addHeader("some", "header").execute(new AsyncCompletionHandler<Response>() {
    @Override
    public State onStatusReceived(HttpResponseStatus status) throws Exception {
        logger.info("status {}", status);
        // CONDITIONAL FINISH THIS CALL
        return super.onStatusReceived(status);
    }

    @Override
    public Response onCompleted(Response response) throws Exception {
        logger.info("its ok");
        return response;
    }

    @Override
    public void onThrowable(Throwable t) {
        logger.error(t);
    }
});

来自doc

您可以return ABORT 关闭连接。

    @Override
    public State onStatusReceived(HttpResponseStatus responseStatus) throws Exception {
        Integer status = responseStatus.getStatusCode();
        if (304 == status) {  // CONDITIONAL FINISH THIS CALL
            return State.ABORT;
        } else {
            doSomething()
            return ...
        }           
    }