是否有适用于 RxJava 的异步最新 http 客户端?
Is there any asynchronous up-to-date http client for RxJava?
Reactor-core 和 Spring 5 刚刚为其 Mono/Flux 发布者引入了新的异步 WebClient。
因为用 Observable 包装 RestTemplate 请求并订阅它以提供异步性是很常见的,所以我想知道是否有 RxJava 的异步客户端。
我发现 https://github.com/ReactiveX/RxApacheHttp 但它似乎不受支持,它的最后一次提交是从 2014 年开始的,甚至在我的测试中都不起作用。
有,但不太清楚,是否适合您的需求:
为了能够以 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();
在 class 之后,即 Retrofit
的接口,每个函数都可以将 Observable<{class_to_return}>
作为返回对象:
retrofit.create({interface_class}.class)
接口class(示例):
Observable<ApiUser> postLogin({parameters});
您可以使用基于 Netty 的 RxNetty(https://github.com/ReactiveX/RxNetty)。
您还可以将 Netflix Ribbon (https://github.com/Netflix/ribbon) 与 RxNetty 一起使用。
另一种选择 - AsyncHttpClient. Maven link
起点:
RxHttpClient.create(AsyncHttpClient asyncHttpClient) ;
Reactor-core 和 Spring 5 刚刚为其 Mono/Flux 发布者引入了新的异步 WebClient。
因为用 Observable 包装 RestTemplate 请求并订阅它以提供异步性是很常见的,所以我想知道是否有 RxJava 的异步客户端。
我发现 https://github.com/ReactiveX/RxApacheHttp 但它似乎不受支持,它的最后一次提交是从 2014 年开始的,甚至在我的测试中都不起作用。
有,但不太清楚,是否适合您的需求:
为了能够以 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();
在 class 之后,即 Retrofit
的接口,每个函数都可以将 Observable<{class_to_return}>
作为返回对象:
retrofit.create({interface_class}.class)
接口class(示例):
Observable<ApiUser> postLogin({parameters});
您可以使用基于 Netty 的 RxNetty(https://github.com/ReactiveX/RxNetty)。
您还可以将 Netflix Ribbon (https://github.com/Netflix/ribbon) 与 RxNetty 一起使用。
另一种选择 - AsyncHttpClient. Maven link
起点:
RxHttpClient.create(AsyncHttpClient asyncHttpClient) ;