2016-12-15 4 views
1

Код ниже возвращает ошибку аутентификации с ошибкой 422. Я хочу использовать базовую аутентификацию для входа в мою учетную запись Github. Пожалуйста, скажите мне, где я делаю неправильноОбычная проверка подлинности в android с помощью Volley для GIthub. Получение кода ошибки 422

JsonObjectRequest request =new JsonObjectRequest(Request.Method.POST, "https://api.github.com/user", object, new Response.Listener<JSONObject>() { 
    @Override 
    public void onResponse(JSONObject response) { 
     Log.d("success","Successfully logged in"); 
    } 
}, new Response.ErrorListener() { 
@Override 
public void onErrorResponse(VolleyError error) { 
    Log.e("Error", "Error with authentication"); 
    } 
}){ 
    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
     Map<String, String> headers = new HashMap<String, String>(); 
     String loginEncoded = new String(Base64.encode((username + ":" + password).getBytes(), Base64.NO_WRAP)); 
     headers.put("Authorization", "Basic " + loginEncoded); 
     headers.put("Content-Type", "application/json"); 
     return headers; 
    } 
}; 
requestQueue.add(request); 

ответ

1

Я нашел, в чем проблема. Я не думал о возможности того, что это может быть запрос GET. Я изменил REQUEST.Method.POST на REQUEST.Method.GET, и он сработал. Да, я знаю. Я все еще ноуб, когда речь заходит о вещах, связанных с Интернетом.

+0

Хороший улов, более точный, чем мой ответ. +1 – VonC

0

Дважды проверить содержание JSon: Error 422 means "Unprocessable Entity":

422 (Unprocessable Entity) код состояния означает:

  • сервер понимает тип содержимого объекта запроса,
  • и синтаксис объекта запроса является правильным (при этом код состояния 400 (неверный запрос) является неуместным)
  • , но не удалось обработать содержащиеся в нем инструкции.

Например, это условие ошибки может возникнуть, если тело запроса XML содержит правильно сформированные (то есть синтаксически правильные), но семантически ошибочные инструкции XML.

Смежные вопросы