我需要从Java向RESTful服务器发出web请求。我希望我的Java代码能够异步处理响应。我正在寻找一个框架,处理线程和回调的请求。
顺便说一句,我看了一下FutureTask,它似乎不是我所需要的,因为它需要客户端等待它在某个时刻完成。我正在寻找完成时的回调。
发布于 2011-04-05 02:55:58
顺便说一下,我看了一下FutureTask,它似乎不是我所需要的,因为它需要客户端等待它在某个时刻完成。
您不必从发起线程调用FutureTask.get()来获取任务的结果。您可以将Callable传递给FutureTask,还可以将其输出传递给其他组件。有了get()方法,您就可以获得异步计算的结果,如果还没有完成,可能需要等待计算完成。
如果你更喜欢回调风格,你可以简单地让Callable调用你自己构造的回调,或者自己处理结果。
发布于 2011-04-05 02:44:34
这在java中可以通过观察者模式轻松解决。
Observable并实现将URL传递给它的类。Observer,向新类注册为观察者<代码>H112根据需要重复。<代码>H213<代码>F214
发布于 2011-04-05 03:01:27
查看GitHub上的ning async http client项目。它为您提供了使用Future或定义请求完成时的回调的选项:
https://stackoverflow.com/questions/5542763
复制相似问题