Android简单的JsonObjectRequest引发null异常

时间:2019-01-19 13:35:34

标签: android android-studio

尝试对链接进行api调用:

http://192.168.1.13/backendapi/api/api.php?apicall=getsale

这按计划通过POSTMAN进行,并返回JSON作为对象列表的响应。

但是当我尝试使用此代码通过android应用拨打电话

String apiURL = "http://192.168.1.13/backendapi/api/api.php?apicall=getsale";

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, apiURL,null   ,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONArray jsonArray = response.getJSONArray("sales");

                    for (int i=0;i<jsonArray.length();i++){
                        JSONObject employee = jsonArray.getJSONObject(i);

                        TableRow tbrow = new TableRow(  MainActivity.this   );
                        TextView t1v = new TextView(MainActivity.this);
                        t1v.setText(employee.getString("saletype"));
                        // ....
                        stk.addView(tbrow);

                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
    }
});

mQueue.add(request);

调试器不断抛出异常:

  

http://192.168.1.13/backendapi/api/api.php?apicall=getsale 0x676929be   正常null

此代码可与某些在线api链接一起使用,但是为什么不与我的本地api相连?

注意:

我添加了我的宣言

 <uses-permission android:name="android.permission.INTERNET" />

PS我的第一个android项目

编辑:邮递员SS

enter image description here

1 个答案:

答案 0 :(得分:0)

缺少参数。

API http://192.168.1.13/backendapi/api/api.php

我希望它现在可以正常工作。

   @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }){
                            @Override
                            protected Map<String, String> getParams() throws AuthFailureError {
                                Map<String,String> parameters = new HashMap<String,String>();
                                parameters.put("apicall","getsale");

                                return parameters;
                            }

                        };