我创建了一个应用程序来使用我开发的REST API。 Android客户端使用retrofit库编写。
我在那里创建了一个ObjectIFaceAsync
接口public interface ObjectIFaceAsync {
@POST("/")
public void addArea(
@Body Area area,
Callback<JsonElement> data
);
}
然后我点击按钮
实现了它Area pojoArea = new Area();
pojoArea.setArea(area.getText().toString());
pojoArea.setDistrict(district.getText().toString());
pojoArea.setProvince(province.getText().toString());
pojoArea.setAreaType(areaType.getSelectedItem().toString());
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URLs.ENDPOINT + "/restaddarea")
.build();
ObjectIFaceAsync objectIFaceAsync = restAdapter.create(ObjectIFaceAsync.class);
try {
objectIFaceAsync.addArea(
pojoArea, new Callback<JsonElement>() {
@Override
public void success(JsonElement jsonElement,retrofit.client.Response response) {
if (jsonElement.getAsJsonObject()
.get("status").getAsString().equals("s")) {
//show a message
} else {
//show another message
}
}
@Override
public void failure(RetrofitError retrofitError) {
//show a failure message
}
}
);
} catch (Exception e) {
}
我使用了相同的端点并发送了一个没有JSON @Body的get请求。它工作正常。在这里,我总是得到一个错误。表示它始终运行失败方法。我看到了
retrofitError.getMessage();
和
retrofitError.getResponse().getStatuse();
他们分别显示 null 和 400 。
有人可以告诉我要做些什么来纠正这个问题。或者我在这里做错了什么。
感谢。
答案 0 :(得分:0)
使用
retrofitError.getBody()
获取String或
retrofitError.getBodyAs(MyError.class)
如果要将错误json映射到对象