即使服务器返回 401 HTTP 异常,我也试图解析实际的响应正文。
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 异常时,我想解析成功响应。
提前致谢..
401 HTTP 响应如下所示。
401 Unauthorized - HTTP Exception
{"Message":"Authentication unsuccessful","otherData":"//Some data"}
顺便说一句,我必须检查 HTTP 错误代码..
if (statusCode==401){
print("Authentication unsuccessful")
}