サーバーが 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 Exception が発生した場合でも、成功応答を解析したいと考えています。
前もって感謝します..
401 HTTP での応答は次のようになります。
401 Unauthorized - HTTP Exception
{"Message":"Authentication unsuccessful","otherData":"//Some data"}
ところで、HTTPエラーコードを確認する必要があります..
if (statusCode==401){
print("Authentication unsuccessful")
}