0
로그인 페이지가있는 프로젝트가 있습니다. 이 페이지에서 사용자가 "로그인"을 클릭 한 후 checkUserName에 요청을 보내야합니다 (해당 사용자가 있고 로그인 할 수 있는지 확인). 그런 다음에 만 인증합니다. ,rxjava를 사용하여 auth에 대한 두 요청 작업
public Flowable<AccountResponse> auth(String login, String password) {
return checkUsername(login).flatMap(checkUsernameResponse -> restService.auth(login, password))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(loginResponse -> {
tokenManager.saveToken(loginResponse.getToken());
});
}
public Flowable<CheckUsernameResponse> checkUsername(String login) {
return restService.checkUserName(login)
.subscribeOn(Schedulers.io());
}
내가 수신에서 확인할 수 있습니다 방법 :
인터페이스 :
@POST("endpoint")
Flowable<AccountResponse> auth(@Body AuthRequestBody authRequestBody);
@POST("endpoint")
Flowable<CheckUsernameResponse> checkUserName(@Body CheckUserNameRequest checkUserNameRequest);
RestService :
public Flowable<AccountResponse> auth(String login, String password) {
return api.auth(new AuthRequestBody(login, password)).compose(handleError());
}
public Flowable<CheckUsernameResponse> checkUserName(String login) {
return api.checkUserName(new CheckUserNameRequest(login)).compose(handleError());
}
와 RX 코드에서
나는 이것을 가지고 첫 번째 쿼리가 괜찮 으면? (checkUsername). 그 API는 오류 메시지를 반환하지 않았고, UserId는 정상이며 isAccessGranted는 true이고 두 번째 요청을 인증에 보내겠습니까?