Я пытаюсь использовать защищенный веб-API из своего приложения для Android. Веб-API использует базовую аутентификацию и использование маркера, сгенерированного сервером. Я смог использовать веб-API с помощью curl, как показано ниже.Разрешение токена для приложения android
Во-первых, чтобы аутентифицировать пользователя и получить токен.
curl http://localhost:3000/api/api_keys -u '[email protected]:UserPassword'
возвращает {"token":"0d63b512573dce7be5eb53bab58a5625"}
Во-вторых, я использую маркер для вызова API как проверку подлинности пользователя.
curl http://localhost:3000/api/exams -H 'Authorization: Token token="0d63b512573dce7be5eb53bab58a5625"'
возвращают соответствующий объект JSON.
Проблема заключается в том, что при попытке вызвать веб-API от клиента Android с помощью приведенного ниже кода веб-API не подбирает заголовок авторизации и поэтому выдает запрос.
...
HttpClient client = new DefaultHttpClient(new BasicHttpParams());
HttpGet httpGet = new HttpGet(targetUrl.toString());
httpGet.setHeader("Content-type", "application/json");
httpGet.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials("[email protected]", "Password!"), "UTF-8", false));
httpGet.addHeader("Authorization", "Token token=\"" + getToken() + "\"");
try {
HttpResponse response = client.execute(httpGet);
...
Как аутентифицировать приложение Android для веб-API?