Я использую android-async-http для выполнения HTTP-вызовов в моем приложении для Android.
Мой сервер использует аутентификацию 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, но не смог найти причину этой проблемы.У кого-нибудь есть идеи, как это может произойти?Есть ли способ, чтобы я мог понять, что не так?