AsyncHttpClient因内部服务器错误而失败

时间:2018-11-20 15:38:01

标签: java android internal-server-error asynchttpclient

我正在尝试在我的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,并且数据正在正常加载。我猜我的代码中存在某种无法跟踪的故障。请帮我解决一下这个。谢谢你。

0 个答案:

没有答案