小编Ale*_*ash的帖子

改装getBodyAs()无法解析服务器错误

我正在尝试解析出现问题时发送的服务器消息.消息以JSON格式发送:

{
    "Message" : "readable reason",
    "Id" : 0, // reason code
}
Run Code Online (Sandbox Code Playgroud)

错误的模型类:

public class RetrofitError
{
    private String message;
    private int id;
}
Run Code Online (Sandbox Code Playgroud)

使用以下代码创建Retrofit:

RestAdapter.Builder builder = new RestAdapter.Builder();

builder.setLog(new AndroidLog(LOG_TAG));
builder.setLogLevel(LogLevel.FULL);
builder.setEndpoint(Constants.getUrl());
builder.setRequestInterceptor(requestInterceptor);

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
gsonBuilder.setPrettyPrinting();

Gson gson = gsonBuilder.create();

builder.setConverter(new GsonConverter(gson));

RestAdapter restAdapter = builder.build();
Run Code Online (Sandbox Code Playgroud)

并检索错误:

RetrofitError error = (RetrofitError)retrofitError.getBodyAs(RetrofitError.class)
Run Code Online (Sandbox Code Playgroud)

它没有例外,所以看起来我做的事情是正确的.但它始终无法解析响应中的两个字段.Retrofit只创建一次,它成功检索并解析除错误1之外的所有服务器响应.

我正在使用最新的Retrofit jar - 1.4.1

我究竟做错了什么?

android retrofit

14
推荐指数
1
解决办法
2665
查看次数

标签 统计

android ×1

retrofit ×1