【发布时间】:2012-11-09 22:09:05
【问题描述】:
我有一个非常简单的客户
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 分块。
有没有办法让它工作?还是我应该切换库?
谢谢, 院长
【问题讨论】:
标签: apache-httpclient-4.x asynchttpclient