我正在使用改造2.0.2和okhttp3来构建我的应用程序。如果服务器代码有任何逻辑错误,我的服务器将http状态代码设置为418。像密码不匹配。响应数据是{“statuscode”:500}。 500表示密码不匹配。当okhttp3获取非200 http状态代码时,我不知道如何读取响应数据。当它获得418时,改造会抛出异常。
我的问题是即使http状态代码不是200,如何读取响应数据。
有什么建议吗?
答案 0 :(得分:2)
我假设您将来电定义为:
Observable<YourModel> doStuff();
对于HTTP错误代码,网络错误,解析错误,您会收到HTTP代码200-300和onSuccess
的{{1}}回调...
您还可以将通话定义为:
onError
当出现HTTP错误时,您将收到Observable<Response<YourModel>> doStuff();
的电话。
在onSuccess
中,您需要检查onSuccess
。对于200-300个状态代码,它返回true,您可以使用response.isSuccess()
如果response.body()
返回false,您可以使用以下命令将错误正文转换为模型类:
response.isSuccess()