在使用带有标头的Volley请求时出现UnsupportedOperationException异常

3

我正在尝试使用Volley库进行呼叫请求。我想要设置标题,但是却收到了java.lang.UnsupportedOperationException的错误。你知道为什么吗?如何解决这个问题?

 public void getAccountInfo() {
            RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
            String url = "http://demo.gopos.pl/oauth/token";
            StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            // Display the first 500 characters of the response string.
                            Log.e(TAG, "onResponse SUCCES!!" + response);

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, "That didn't work!");
            }

        }) {
            @Override
            public Map<String,String> getHeaders()throws AuthFailureError {
                Map<String,String> params = super.getHeaders();
                if(params==null)params = new HashMap<>();
                params.put("username","username");
                params.put("password","password");
                return params;
            }
        };
        queue.add(stringRequest);


    }

你在哪一行代码中出现了"UnsupportedOperationException"? - Mounir Elfassi
移除 if(params==null) - Sumanth Jois
2个回答

23

删除这两行:

 Map<String,String> params = super.getHeaders();
            if(params==null)params = new HashMap<>();

只需要添加这个:

   Map<String, String> params = new HashMap<>();

现在应该可以正常工作了。


0
请使用以下方法解决UnsupportedOperationException问题:
override fun getHeaders(): MutableMap<String, String> {
    val header = HashMap<String, String>()
//  header[Constants.AUTH_TOKEN] = Constants.TOKEN_ID
    return header
}

这对我来说是有效的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接