我正在尝试在我的android项目中执行GET
操作,由于某些无法追踪的原因,我在日志控制台中收到的错误为Internal Server Error
。经过大量的工作后,我仍然可以做到这一点,因此无法进一步处理我的工作。
在写下代码之前,我想告诉你, api需要一个标头作为用户令牌,我将其传递给AsyncHttpClient中的getClient()。
代码
private static AsyncHttpClient getClient() {
AsyncHttpClient client = new AsyncHttpClient();
client.setTimeout(2000);
client.setMaxRetriesAndTimeout(1, 3000);
return client;
}
// ----- API CALLING ----
private void callPetsApi() {
getClient().addHeader("token", user.getToken());
getClient().get("url", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
progress.setVisibility(View.GONE);
petsRecyclerView.setVisibility(View.VISIBLE);
String response = new String(responseBody);
Log.e("RESPONSE", response);
try {
jsonArrayParsing(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.e("FAILURE===", error.getLocalizedMessage());
progress.setVisibility(View.GONE);
goneText.setText(error.getMessage());
goneText.setVisibility(View.VISIBLE);
}
});
}
它总是失败,并进入onFailure()
,错误为Internal Server Error
。
我已经在日志控制台中针对user.getToken()
测试了它,并且一切正常。
我也这样做了,就像将其添加到params中,然后将其传递给get()一样:
RequestParams params = new RequestParams();
params.add("token", user.getToken());
getClient().get() {}
我也这样做是为了确定是引起问题的setTimeOut()
还是setMaxReRetriesAndTimeout()
。但是我遇到了同样的错误。
我在getClient()
中评论了这些行,但没有结果。
我也通过传递标头来测试Postman
上的api,并且数据正在正常加载。我猜我的代码中存在某种无法跟踪的故障。请帮我解决一下这个。谢谢你。