как использовать асинхронный http-клиент apache, так как он не работает

У меня есть очень простой клиент, как так

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-фрагменты.

Есть ли способ заставить это работать? или я должен переключать библиотеки?

спасибо, Дин


person Dean Hiller    schedule 09.11.2012    source источник


Ответы (1)


Это очень помогло бы запустить клиент ;-)

клиент.старт()

Вы также можете закрыть его, когда закончите.

person ok2c    schedule 09.11.2012