如何使用apache异步http客户端,因为这不起作用

时间:2012-11-09 13:53:00

标签: apache-httpclient-4.x asynchttpclient

我有一个非常简单的客户端

private void start() throws IOReactorException, InterruptedException {
    DefaultHttpAsyncClient client = new DefaultHttpAsyncClient();

    HttpAsyncRequestProducer prod = HttpAsyncMethods.createGet("http://b1.bigde.nrel.gov:8080");

    HttpAsyncResponseConsumer<Object> handler = new MyResponseHandler();
    FutureCallback<Object> futureCb = new MyFutureCbHandler();
    client.execute(prod, handler, futureCb);

    log.info("now sleeping");
    Thread.sleep(30000);
    log.info("done sleeping");
}

问题是没有调用任何侦听器方法。 MyResponseHandler正在扩展AsyncCharConsumer但没有调用任何东西,并且在FutureCallback上没有调用任何内容。我从来没有得到回应。

注1:我需要能够调用client.execute并返回堆栈而不与Futures交互

注意2:我需要调用的侦听器方法(并且需要将它们称为数据,因为远程端正在回传http chunking。

有没有办法让它发挥作用?或者我应该切换库?

感谢, 迪安

1 个答案:

答案 0 :(得分:3)

启动客户端会有很大帮助; - )

client.start()

完成后,您可能还想关闭它。