在Android中使用Volley for GIthub的基本身份验证。获取错误代码422

时间:2016-12-15 16:22:30

标签: android rest authentication github-api

以下代码返回身份验证失败,错误为422.我想使用基本身份验证登录我的Github帐户。请告诉我我做错了什么

    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);

2 个答案:

答案 0 :(得分:2)

我发现了问题所在。我没想到它可能是一个GET请求。我将REQUEST.Method.POST更改为REQUEST.Method.GET并且它工作正常。 是的我知道。当谈到与网络相关的东西时,我仍然是一个菜鸟。

答案 1 :(得分:1)

仔细检查您的json内容:Error 422 means "Unprocessable Entity"

  

422(不可处理实体)状态代码表示:

     
      
  • 服务器了解请求实体的内容类型
  •   
  • 并且请求实体的语法是正确的(因此400(错误请求)状态代码是不合适的)
  •   
  • 但无法处理所包含的说明。
  •   
     

例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现此错误情况。

相关问题