Я создал приложение для использования REST api, разработанное мной. Клиент Android написан с помощью библиотеки retrofit.Retrofit возвращает null сообщение об ошибке со статусом 400
там я создал интерфейс, как 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) {
}
Я использовал ту же самую конечную точку и послал запрос GET, не имеющий JSON @Body. Он работает нормально. Здесь я всегда получаю сообщение об ошибке. означает, что он всегда запускает ошибку . Я получил отображается
retrofitError.getMessage();
и
retrofitError.getResponse().getStatuse();
Они показывают нуль и соответственно.
Может кто-то сказать, что я должен сделать, чтобы исправить это. или что я сделал неправильно здесь.
спасибо.
.setLogLevel (RestAdapter.LogLevel.FULL) .setLog (новый AndroidLog («your_application»)), это поможет вам отладить вывод –
@PramodYadav Я сделал что-то правильно? , потому что я не уверен, пропустил ли я какой-либо шаг. – ddarz4u
Распечатайте стек из RetrofitError. Может быть, в RetrofitError нет возможности вбрасывать, но из конечной точки возвращается только код состояния. –