我正在尝试解析出现问题时发送的服务器消息.消息以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
我究竟做错了什么?
如果您仍然遇到此问题,请尝试执行此操作。我知道这是一个非常古老的问题,但它可能对其他人有帮助。
if (restError != null)
failure(restError);
else
{
failure(new RestError(error.getMessage()));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2665 次 |
最近记录: |