bli*_*ard 5 android rx-java retrofit
我使用的是Retrofit同RxJava为网络电话和RxBinding用于查看操作.在注册屏幕中,单击"注册"按钮后,我将使用该MyApi服务将信息发布到本地服务器.
SignupActivity.class
mCompositeSubscription.add(RxView.clicks(mRegisterButton).debounce(300, TimeUnit.MILLISECONDS).
subscribe(view -> {
registerUser();
}, e -> {
Timber.e(e, "RxView ");
onRegistrationFailed(e.getMessage());
}));
private void registerUser() {
mCompositeSubscription.add(api.registerUser(mEmail,
mPassword, mConfirmPassword)
.subscribe(user -> {
Timber.d("Received user object. Id: " + user.getUserId());
}, e -> {
Timber.e(e, "registerUser() ");
onRegistrationFailed(e.getMessage());
}));
}
Run Code Online (Sandbox Code Playgroud)
MyApi.class
public Observable<User> registerUser(String username, String password, String confirmPassword) {
return mService.registerUser(username, password, confirmPassword)
.compose(applySchedulers());
}
@SuppressWarnings("unchecked") <T> Observable.Transformer<T, T> applySchedulers() {
return observable -> observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
Run Code Online (Sandbox Code Playgroud)
MyService.class
@FormUrlEncoded @POST("users/")
Observable<User> registerUser(@Path("email") String username,
@Path("password") String password, @Path("password_confirmation") String confirmPassword);
Run Code Online (Sandbox Code Playgroud)
IllegalArgumentException由于我发布了无效信息,因此呼叫失败.
我的主要问题是,IllegalArgumentException我认为RxJava会执行,registerUser()#ErrorHandler()因为我的registerUser服务调用因异常而失败,而是调用RxView#ErrorHandler().
如何处理/强制registerUser()#ErrorHandler()处理网络呼叫期间发生的异常?
我的不好的是,网络调用没有失败IllegalArgumentException,但请求构造本身失败了IllegalArgumentException。
java.lang.IllegalArgumentException: URL "users/" does not contain {email}".
Run Code Online (Sandbox Code Playgroud)
我没有使用@Field注释来构建 POST 主体,而是错误地使用了@Path注释。
正确的定义:
@FormUrlEncoded @POST("users/")
Observable<User> registerUser(@Field("email") String username,
@Field("password") String password, @Field("password_confirmation") String confirmPassword);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |