Http-аутентификация в Android с использованием библиотеки volley

Как сделать Http-аутентификацию для API, используя библиотеку Volley?

Я попробовал следующий код.... он выдает исключение времени выполнения и исключение нулевого указателя. Пожалуйста, предоставьте предложения

String url = "Site url";
String host = "hostName";
int port = 80;
String userName = "username";
String password = "Password";
DefaultHttpClient client = new DefaultHttpClient();
AuthScope authscope = new AuthScope(host, port);
Credentials credentials = new UsernamePasswordCredentials(userName, password);
client.getCredentialsProvider().setCredentials(authscope, credentials);
HttpClientStack stack = new HttpClientStack(client);
RequestQueue queue =  Volley.newRequestQueue(VolleyActivity.this, stack);

person Dharani Kumar    schedule 28.07.2013    source источник
comment
Вы можете использовать droidQuery для выполнения асинхронных запросов покоя с аутентификацией. Посмотрите на AjaxOptions документация для добавления имени пользователя и пароля к запросу.   -  person Phil    schedule 14.08.2013


Ответы (2)


Базовая авторизация Http выглядит следующим образом:

Authorization: Basic dXNlcjp1c2Vy

где dXNlcjp1c2Vy — строка пользователь:пароль в формате Base64, слово "Basic" означает тип авторизации.

Поэтому вам нужно установить заголовок запроса с именем Authorization.

Для этого вам нужно переопределить метод getHeaders в вашем классе запроса.

Код будет выглядеть так:

@Override
public Map<String, String> getHeaders() {
    Map<String, String> params = new HashMap<String, String>();
    params.put(
            "Authorization",
            String.format("Basic %s", Base64.encodeToString(
                    String.format("%s:%s", "username", "password").getBytes(), Base64.DEFAULT)));
    return params;
}
person Sergey Pekar    schedule 10.10.2014

Расширьте класс запроса залпа по вашему выбору и перезапишите getHeaders(). Вернуть карту с информацией об аутентификации (headers.put('Authorization', 'authinfo...'))

person Makibo    schedule 28.07.2013