![](/img/trans.png)
[英]Receiving NULL on response error body if the status code is 400 with retrofit in android
[英]Retrofit returns null error message with status 400
我已經創建了一個應用程序來使用我開發的REST api。 Android客戶端是使用改造庫編寫的。
在那里我創建了一個接口作為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 。
有人可以告訴我該怎么做才能更正此問題。 或我在這里做錯了什么。
謝謝。
采用
retrofitError.getBody()
得到字符串或
retrofitError.getBodyAs(MyError.class)
如果您想將錯誤json映射到對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.