簡體   English   中英

改造會返回狀態為400的空錯誤消息

[英]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();

它們分別顯示null400

有人可以告訴我該怎么做才能更正此問題。 或我在這里做錯了什么。

謝謝。

采用

retrofitError.getBody()

得到字符串或

retrofitError.getBodyAs(MyError.class)

如果您想將錯誤json映射到對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM