react -core和Spring 5刚刚为它们的Mono/Flux publisher引入了新的异步WebClient。
由于通常将RestTemplate请求与Observable和subscribeOn一起包装以提供异步性,我想知道是否有任何RxJava的异步客户端。
我找到了https://github.com/ReactiveX/RxApacheHttp,但它似乎不受支持,它的最后一次提交是从2014年开始的,甚至在我的测试中都没有工作。
您可以使用基于Netty的RxNetty(https://github.com/ReactiveX/RxNetty)。
你也可以使用Netflix功能区(https://github.com/Netflix/ribbon)与RxNetty。
另一个选项- AsyncHttpClient。Maven链接
起点:RxHttpClient.create(AsyncHttpClient asyncHttpClient) ;
是的,有,但不清楚,是否适合您的需求:
Retrofit2
为了能够获得Observable
的响应,将以下内容添加到您的build.gradle
文件中:
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
在众多选项中:
Retrofit retrofit = new Retrofit.Builder()
(...)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
(...)
.build();
之后,在Retrofit
的接口类内部,每个函数都可以将Observable<{class_to_return}>
作为返回对象:
retrofit.create({interface_class}.class)
接口类(示例):
Observable<ApiUser> postLogin({parameters});