我有一个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/";
让我知道是否需要更多信息。
答案 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。我的反手团队说反手方面出了一些错误。