如标题中所述,当请求以200响应时,不会调用onNext。它会触发onError。 LogCat没有显示任何错误。我也确定HTTP请求的响应为200。
这是我的服务界面
interface EnrollmentService {
@POST("enrollment/precheck")
fun sendPhoneNumber(@Body phoneInput: PhoneInputRequest) : Observable<Void>
}
存储库
class EnrollmentRepository(api : Retrofit) : BaseRepository(api) {
private val service = api.create(EnrollmentService::class.java)
fun sendPhoneNumber(phoneInputRequest: PhoneInputRequest) = service.sendPhoneNumber(phoneInputRequest)
}
这是触发请求的ViewModel中的方法:
fun sendPhoneNumber(phoneNumber: String) {
if(!isNetworkAvailable(phoneInputResponse))
return
compositeDisposable.add(repository.sendPhoneNumber(PhoneInputRequest(PhoneNumber("+48", phoneNumber)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ phoneInputResponse.postValue(Event(ApiResponse.success(null)))},
{error -> phoneInputResponse.postValue(Event(ApiResponse.error(ResponseError.getErrorType(error)))) }
))
}
答案 0 :(得分:0)
如果您只是期望 response.code()
,请将return type
方法的sendPhoneNumber
从Observable<Response<Void>>
更改为Observable<Void>
因此,请使用:-
fun sendPhoneNumber(@Body phoneInput: PhoneInputRequest) : Observable<Response<Void>>