Android простой JsonObjectRequest выбрасывает нулевое исключение - PullRequest
0 голосов
/ 19 января 2019

Попытка сделать вызов 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 НОРМАЛЬНЫЙ нуль

Этот код работает с некоторыми онлайн-ссылками API, но почему не с моими локальными?

Примечание:

Я добавил к своим манифестам

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

P.S. Мой первый андроид проект

Редактировать: Почтальон СС

enter image description here

1 Ответ

0 голосов
/ 19 января 2019

параметров отсутствовало.

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;
                            }

                        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...