AsyncHttpClient在授权标头中发送空值

时间:2018-11-30 17:12:40

标签: android android-async-http

我正在使用this page在我的android应用中进行HTTP调用。

我的服务器使用OAuth2身份验证,我需要在每个请求中发送授权标头。

应用启动时,会发出多个HTTP请求。在极少数情况下,将使用空值授权头发送请求。没有确定的方法来重现此问题。

我使用以下方法发出所有请求。此方法添加了授权标头。

private static AsyncHttpClient client = new AsyncHttpClient();

private static void get(final String url, final RequestParams params, boolean nonSecure, final CustomJsonResponseHandler responseHandler) {
        client.removeAllHeaders();
        String authToken = ApplicationEx.getAuthToken();
        if (TextUtils.isEmpty(authToken)) {
            LOGGER.warn("Auth token is empty");
        }
        client.addHeader("Authorization", "Bearer " + authToken);
        client.get(getAbsoluteUrl(url, nonSecure), params, responseHandler);
}

发生问题时,可以看出authToken不为空。但是,后端以某种方式收到了授权标头的空值。以下是我的后端中的一个日志条目,其中已收到一个空的授权标头。

/api/category/fetch -> {"content-length":"0","host":"my.host","connection":"Keep-Alive","accept-encoding":"gzip","authorization":""}

我试图检查android-async-http中的代码,但找不到导致此问题的原因。有谁知道这是怎么发生的?有什么办法可以找出问题所在?

0 个答案:

没有答案