0

我有一个非常简单的客户

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分块。

有没有办法让它工作?还是我应该切换库?

谢谢,院长

4

1 回答 1

3

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

客户端.start()

您可能还想在完成后将其关闭。

于 2012-11-09T14:09:05.063 回答