使用Android Volley从外部API获取JSONArray。我的代码在
之下StringRequest jq = new StringRequest("http://api.example.com/json/States", new Response.Listener<String>() {
@Override
public void onResponse(String jsonArray) {
try {
Log.d("Success", jsonArray.toString());
} catch (Exception je) {
je.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.d("Error", volleyError.toString());
}
}) {
@Override
protected Response parseNetworkResponse(NetworkResponse networkResponse) {
return null;
}
};
AppController a = AppController.getInstance();
Log.d("Queue", "Add");
a.addToRequestQueue(jq);
我一直得到同样的错误
NetworkDispatcher.run:未处理的异常java.lang.NullPointerException:尝试从字段&com; .android.volley.Cache $ Entry com.android.volley.Response.cacheEntry&#39;中读取。在null对象引用上 java.lang.NullPointerException:尝试从字段中读取com.android.volley.Cache $ Entry com.android.volley.Response.cacheEntry&#39;在null对象引用上 在com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)
我尝试了各种方法。但仍然有同样的问题。我不明白问题在哪里。帮助解决这个问题
答案 0 :(得分:5)
您没有解析响应。您只返回null而不解析缓存头。解析响应后,您可以返回响应,缓存头解析如下:
return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
在parseNetworkResponse(NetworkResponse networkResponse)方法中返回