Android Retrofit-工作网址出现404错误

时间:2019-04-12 00:45:11

标签: android retrofit2

我有一个Android应用程序,该应用程序具有多年未触及的特定改装代码。突然,当我们进行某些GET调用时,我们开始看到404错误。通过它进行调试时,查看响应,如下所示:

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 个答案:

答案 0 :(得分:0)

类似的东西应该可以工作-并且一旦他们解决了问题就不会中断:

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上记录一个错误,以便人们可以看到何时该修复代码。

答案 1 :(得分:0)

我在邮递员上尝试了此api,并且此api提供了404 Not Found。我的反手团队说反手方面出了一些错误。