Android Retrofit - 404 ошибки на рабочих URL - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть приложение для Android, в котором есть конкретный модифицированный код, который не менялся годами Внезапно мы начали видеть 404 ошибки при выполнении определенных вызовов GET. При отладке через него, глядя на ответ, это выглядит так:

Response{protocol=h2, code=404, message=, url=https://www.mainstreetartsfest.org/feed/artist/getAllCategories}

Когда я копирую этот URL в браузер, он прекрасно загружает данные. Мы делаем что-то подобное на iOS без проблем, но на Android это не получается. Я полностью озадачен любыми причинами, по которым это могло бы начаться. Есть идеи? Интерфейс для Retrofit API выглядит следующим образом:

@GET("feed/artist/getAllCategories")
Call<List<Category>> getAllCategories();

Наш базовый URL определяется следующим образом:

public static final String BASE_URL = "http://www.mainstreetartsfest.org/";

Дайте мне знать, если потребуется дополнительная информация.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Я попробовал этот API на почтальоне, и этот API дает 404 Not Found. моя бэкхенд команда говорит, что есть какая-то ошибка в бэкхенде.

0 голосов
/ 12 апреля 2019

Что-то похожее, это должно работать - и не сломается, как только они исправят проблему на своей стороне:

Call<Categories> api = SomeClient.getAllCategories();
api.enqueue(new Callback<Categories>() {
    @Override
    public void onResponse(@NonNull Call<Categories> call, @NonNull Response<Categories> response) {
        switch(response.code()) {

            /* temporary workaround: treating HTTP404 as if it would be HTTP200. */
            case 200:
                Log.e(LOG_TAG, "a proper HTTP200 header had been received.");
            case 404:
                if (response.body() != null) {
                    Categories items = response.body();
                    ...
                } else if (response.errorBody() != null) {
                    String errors = response.errorBody().string();
                    ...
                }
                break;
        }
    }
}

Просто зарегистрируйте ошибку на HTTP200, чтобы можно было видеть, когда онао времени, чтобы исправить код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...