Error Converter返回具有空值的对象

时间:2016-11-09 18:21:21

标签: java android retrofit2

所以我正在使用改造来执行我的API调用,当我尝试使用我的转换器将response.errorBody()转换为我的java时,我有这个返回错误的端点(这是所需的响应) object Error,它返回新的Error对象但其字段为空。

这是我的错误对象类:

public class Error {
     private final String message;
     private final Object objectError;


    public Error(String message, Object objectError) {
        this.message = message;
        this.objectError = objectError;
    }

    public String getMessage() {
        return message;
    }

    public Object getObjectError() {
        return objectError;
    }
}

这是我的转换方法:

public static Error parseError(Response<?> response) {
        Converter<ResponseBody, Error> converter = ApiClient.retrofit().responseBodyConverter(Error.class, new Annotation[0]);

        Error error;

        try {
            error = converter.convert(response.errorBody());
        } catch (IOException e) {
            return new Error("Connection Error", null);
        }

        return error;
}

我的JSON响应看起来没问题:

{"status":"error",
   "error":{"message":"# is an invalid character",
                 "objectError":"# is an invalid character"}}

你能帮我看看发生了什么吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我最后通过创建另一个具有status字段和错误字段的类来解决它,并在转换器中使用了那个,该类中的错误字段就是上面那个。