Я пытаюсь проанализировать фактическое тело ответа, даже если сервер возвращает 401 HTTP Exception.
protected inline fun <RESPONSE : ParentResponse> executeNetworkCall(
crossinline request: () -> Single<RESPONSE>,
crossinline successful: (t: RESPONSE) -> Unit,
crossinline error: (t: RESPONSE) -> Unit) {
request().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ t: RESPONSE ->
errorHandler!!.checkApiResponseError(t)?.let {
listener?.onErrorWithId(t.message!!)
error(t)
return@subscribe
}
successful(t)
}
,
{ t: Throwable ->
listener?.onErrorWithId(t.message!!)
}
)
}
Это то, что я написал. Он хорошо разбирает ответ и ошибку, когда оба они разделены обычным образом. Но я хочу проанализировать успешный ответ, когда получу даже 401 HTTP Exception.
Заранее спасибо ..
Ответ с 401 HTTP выглядит следующим образом.
401 Unauthorized - HTTP Exception
{"Message":"Authentication unsuccessful","otherData":"//Some data"}
Кстати, я должен проверить код ошибки HTTP ..
if (statusCode==401){
print("Authentication unsuccessful")
}