Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在请求中放入标头后没有响应_Android_Android Volley - Fatal编程技术网

Android 在请求中放入标头后没有响应

Android 在请求中放入标头后没有响应,android,android-volley,Android,Android Volley,我的代码如下: public void getProfile(){ String LOGIN_REQUEST_TAG = "LOGIN_REQUEST_TAG"; String url = Constants.API_URL + "/users/profile"; JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, n

我的代码如下:

public void getProfile(){
        String LOGIN_REQUEST_TAG = "LOGIN_REQUEST_TAG";
        String url = Constants.API_URL + "/users/profile";

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.d("Login Response:", response.toString());
                JSONObject responseOject = response;
                if(responseOject.has("response")){
                    try {
                        Log.d("Data Response", responseOject.getString("response"));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }else if(responseOject.has("error")){
                    try {
                        errorMessage = responseOject.getString("error");
                        new AlertDialog.Builder(MainActivity.this)
                                .setTitle("Error")
                                .setMessage(errorMessage)
                                .setNegativeButton("OK", null)
                                .show();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }else{
                    //Server error. Come back again later

                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.e("Error at login: ", error.getMessage());
            }

            /**
             * Passing some request headers
             */
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json");
                headers.put("Authorization", "Bearer DGZjaza3saxL98g9ATRUQsolCxEZPBUd");
                return headers;
            }
        });
        AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonObjectRequest,LOGIN_REQUEST_TAG);
BasicNetwork.performRequest: Unexpected response code 401

我认为不应该将getHeader放在JsonObjectRequest的构造函数中。它应该放在匿名类块中

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
        Request.Method.GET, 
        url, 
        null, 
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.d("Login Response:", response.toString());
                JSONObject responseOject = response;
                if(responseOject.has("response")){
                    try {
                        Log.d("Data Response", responseOject.getString("response"));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }else if(responseOject.has("error")){
                    try {
                        errorMessage = responseOject.getString("error");
                        new AlertDialog.Builder(MainActivity.this)
                                .setTitle("Error")
                                .setMessage(errorMessage)
                                .setNegativeButton("OK", null)
                                .show();
                     } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }else{
                    //Server error. Come back again later
                }
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.e("Error at login: ", error.getMessage());
            }
        }
){
       @Override
       public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json");
            headers.put("Authorization", "Bearer DGZjaza3saxL98g9ATRUQsolCxEZPBUd");
            return headers;
       }
};
如果您想了解更多信息,那么volley中JsonObjectRequest的继承层次结构是->->。覆盖getHeaders的方法是从请求基类派生的