Volley框架使用报错:NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException

volley是google在2013年的I/O大会上推出的一个网络通信框架,在请求网络数据的时候,使用volley大大提高了我们的开发效率,但是众所周知使用volley发起POST请求时,我们需要通过在xxxRequest的匿名类中重写getParams()方法,

比如有这么一个stringRequest:

StringRequest stringRequest = new StringRequest(url, new Response.Listener() { @Override public void onResponse(String response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }){ @Override protected Map getParams() throws AuthFailureError { Map map = new HashMap(); map.put("params1", "value1"); map.put("params2", "value2"); return map; } };

stringRequest中我们重写了getParams(),在getParams()中返回了携带数据的map

如果这里的map为null就会报出NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException的异常。


顺便提一下重写getParams()我们可以向服务器提交数据,如果我们想发起带Header的HTTP请求,我们可以重写getHeaders()方法。

StringRequest stringRequest = new StringRequest(url, new Response.Listener() { @Override public void onResponse(String response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }) { @Override public Map getHeaders() throws AuthFailureError { Map map = new HashMap(); map.put("params1", "value1"); return map; } };

你可能感兴趣的:(Android学习心得)