我正在使用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中的代码,但找不到导致此问题的原因。有谁知道这是怎么发生的?有什么办法可以找出问题所在?