我有简单的要求
/*LOGIN*/
@FormUrlEncoded
@POST("v1/user/login") //your login function in your api
Call
如果http代码200,则返回LoginResponceobject
{"token":"itwbwKay7iUIOgT-GqnYeS_IXdjJi","user_id":17}
{"status":4,"description":"user provided token expired"}
如何处理响应中的错误状态?
我试过这个,但它没有在原始文本中看到JSON(doens’t工作).而且似乎不是很好的解决方案.
mCallLoginResponse.enqueue(new Callback
最佳答案
要在有错误代码时访问响应正文,请使用
errorBody()
而不是body().此外,ResponseBody上有一个字符串方法,您应该使用它而不是toString.
Gson gson = new GsonBuilder().create();
try {
ApiError mApiError = gson.fromJson(response.errorBody().string(),ApiError.class);
} catch (IOException e) {
// handle failure to read error
}