Код: Выделить всё
http://username:[email protected]/api/account/verify_credentials.xml
где имя пользователя и пароль , очевидно, представляют реальные учетные данные пользователя. Volley бросает эту ошибку: < /p>
BasicNetwork.performRequest: Unexpected response code 401 for http://username:[email protected] ... ntials.xml
< /code>
Вот мой код Android, который обрабатывает запрос: < /p>
private static final String HTTP_PRE = "http://";
private static final String VERIFY_CREDENTIALS = "myanimelist.net/api/account/verify_credentials.xml";
public void verifyCredentials(String username, String password) {
RequestQueue queue = Volley.newRequestQueue(context);
String url = HTTP_PRE + username + ":" + password + "@" + VERIFY_CREDENTIALS;
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() {
@Override
public void onResponse(String response) {
processResponse(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// handle error
Log.d(TAG, "error: " + error.getMessage());
}
});
queue.add(stringRequest);
}
< /code>
Это решение для переопределения метода getheaders () дало тот же результат:
Как использовать базовую аутентификацию с залпом на Android?. < /p>
Вот моя реализация этого решения: < /p>
@Override
public Map getHeaders() throws AuthFailureError {
Map params = super.getHeaders();
if (params == null){
params = new HashMap();
}
String creds = String.format("%s:%s", username, password);
params.put("Authorization", creds);
return params;
}
< /code>
, которая вернула эту ошибку без учетных данных, встроенных непосредственно в URL: < /p>
BasicNetwork.performRequest: Unexpected response code 401 for http://myanimelist.net/api/account/veri ... ntials.xml
< /code>
Если кто -то мог дать советы, я бы очень признателен. Это мой первый раз, когда я использую базовую аутентификацию HTTP, поэтому я мог упустить что -то очевидное.
Подробнее здесь: https://stackoverflow.com/questions/380 ... entication