java - JSON 数组请求无法应用错误监听器

标签 java android json api android-volley

我是 Android 编程新手,我使用 Google Volley 库来调用 API,现在我的 Android 代码遇到了一些问题。发生 JSON 错误 here

这是我的代码:

private void loadJson()
    {
        pd.setMessage("Mengambil Data");
        pd.setCancelable(false);
        pd.show();

        JsonArrayRequest reqData = new JsonArrayRequest(Request.Method.POST, ServerAPI.URL_DATA,null,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        pd.cancel();
                        Log.d("volley","response : " + response.toString());
                        for(int i = 0 ; i < response.length(); i++)
                        {
                            try {
                                JSONObject data = response.getJSONObject(i);
                                ModelData md = new ModelData();
                                md.setNpm(data.getString("npm"));
                                md.setNama(data.getString("nama"));
                                md.setProdi(data.getString("prodi"));
                                md.setFakultas(data.getString("fakultas"));
                                mItems.add(md);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                        mAdapter.notifyDataSetChanged();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        pd.cancel();
                        Log.d("volley", "error : " + error.getMessage());
                    }
                });

        AppController.getInstance().addToRequestQueue(reqData);
    }

最佳答案

您在 JSONArryRequest 中传递了错误的参数,您需要传递 URL(字符串)和响应监听器。

   JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST,"http://example.com/feed.json",
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray jsonArray) {
                             //Your code
                       }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        Toast.makeText(MainActivity.this, "Unable to fetch data: " + volleyError.getMessage(), Toast.LENGTH_SHORT).show();
                    }
    });

关于java - JSON 数组请求无法应用错误监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260044/

相关文章:

java - 为什么二级泛型在 Java 中是不可能的

java - ArrayList<HashMap<String, Object> 按 ListView 单元格的 KEY 值排序

android - 在Android中使用自签名证书实现https连接的正确方法是什么?

android - Canvas.drawBitmap() 忽略绘画的平铺模式

json - 删除 Lambda 支持的自定义资源的支持 Lambda 函数

java - 编写正则表达式来查找连续字符 'o'

java - Apache Groa 找不到主类错误

java - 未捕获的异常 : no application instance (blackberry)

jquery - 来源http ://localhost is not allowed by Access-Control-Allow-Origin.?

c# - Json.NET - ContractResolver 使用非原始键序列化字典