Sam*_*net 21 android rx-java rx-java2
当使用rxjava 1.xi用于返回Observable<Void>
处理来自改造的空响应时:
@POST( "login" )
Observable<Void> getToken( @Header( "Authorization" ) String authorization,
@Header( "username" ) String username,
@Header( "password" ) String password );
Run Code Online (Sandbox Code Playgroud)
但是因为rxjava 2.x不会发出任何东西,Void
是否有任何好的做法来处理那些空的响应?
Mak*_*dov 38
Completable是为这种情况设计的.它自 RxJava 1.1.1 起可用.来自官方文档:
表示没有任何值的延迟计算,但仅表示完成或异常.该类遵循与Reactive-Streams类似的事件模式:onSubscribe(onError | onComplete)?
所以只需更改方法的返回类型:
@POST("login")
Completable getToken(@Header("Authorization") String authorization,
@Header("username") String username,
@Header("password") String password);
Run Code Online (Sandbox Code Playgroud)
并重写您的订阅者,例如:
apiManager.getToken(auth, name, pass)
...
.subscribe(() -> {
//success
}, exception -> {
//error
});
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是:
@POST("login")
Observable<Response<Void>> getToken( @Header( "Authorization" ) String authorization,
@Header( "username" ) String username,
@Header( "password" ) String password );
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7051 次 |
最近记录: |