当调用 API 时,它在 onSuccess 中返回一个对象,状态码为 201,当不在 onSuccess 中时,状态码为 422,它也会给出这样的对象
{
"errors": [
"Usuário não encontrado"
]
}
我尝试了很多方法,包括使用此代码的改造官方网站
public class ErrorUtils {
public static APIError parseError(Response<JsonObject> response) {
Converter<ResponseBody, APIError> converter =
ServiceGenerator.retrofit()
.responseBodyConverter(APIError.class, new Annotation[0]);
APIError error;
try {
error = converter.convert(response.errorBody());
} catch (IOException e) {
Log.v("LoginUser", "IOException -> " + e.getMessage());
return new APIError();
}
return error;
}
public static class ServiceGenerator {
public static final String API_BASE_URL = ApiClient.BASE_URL;
private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
public static Retrofit retrofit = null;
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create());
public static Retrofit retrofit() {
retrofit = builder.client(httpClient.build()).build();
return retrofit;
}
}}
API 错误类
public class APIError {
private String[] errors;
public String[] getErrors() {
return errors;
}
public void setErrors(String[] errors) {
this.errors = errors;
}
@Override
public String toString() {
return "ClassPojo [errors = " + errors + "]";
}}
但是通过这种方式,它进入了 Error Utils 类的 catch 块,异常是
End of input at line 1 column 1 path $
对此问题的解决方案将不胜感激。但请记住,对于这两个错误,我已经彻底查看了 SO,然后我发布了这个问题。