JSON проблема с анализом Volley в Android? - PullRequest
0 голосов
/ 21 марта 2019

Этот проект раньше успешно работал. После того, как мы изменили URL с web service, которые не анализируют данные. Мы изменили URL bus/search вместо bus. Здесь я отправляю запрос, и он успешно запускается с новым URL. Но это состояние работает и покажи эту ошибку.

 catch (JSONException e) {
  Log.e("search" + owner + "VoyagesErr1", e.toString());
  e.printStackTrace();  
}

ошибка: e: "org.json.JSONException: нет значения для статуса

Voyage.java

 private void sendRequest(final String owner, final Map<String, String> header) {
    //url = "http://12.1.1.12:1337/";
    StringRequest stringRequest = new StringRequest(Request.Method.POST, MyConstants.URL + owner,
            new Response.Listener<String>() {
                @Override
                // servisten 200 olarak bir veri alındığında onResponse içine düşüyor.
                public void onResponse(String response) {

                 //   Log.e("AAAA" + owner, response);
                    try {
                        JSONObject object = new JSONObject(response);
                        if (object.getString(MyConstants.SERVICE_STATUS).equals(MyConstants.SERVICE_RESPONSE_STATUS_NOTAVAILABLE)) {
                            sendVoyagesErrorBroadcast(owner, MyConstants.ERROR_NOTAVAILABLE);
                        } else if (object.getString(MyConstants.SERVICE_STATUS).equals(MyConstants.SERVICE_RESPONSE_STATUS_SUCCESS)) {
                            JSONArray result = object.getJSONArray(MyConstants.SERVICE_RESULT);
                            JSONArray resultGoing = result.getJSONObject(0).getJSONArray("going");
                            if (has_return) {
                                JSONArray resultReturn = result.getJSONObject(1).getJSONArray("round");
                                sendVoyagesArrayBroadcast(owner + MyConstants.DIRECTION_RETURN, resultReturn);
                            }
                            sendVoyagesArrayBroadcast(owner + MyConstants.DIRECTION_GOING, resultGoing);
                        } else if (object.getString(MyConstants.SERVICE_STATUS).equals(MyConstants.SERVICE_RESPONSE_STATUS_FAİLURE)) {
                            sendVoyagesErrorBroadcast(owner, MyConstants.ERROR_SERVER);
                        }
                    } catch (JSONException e) {
                        Log.e("search" + owner + "VoyagesErr1", e.toString());
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Log.e("AAAA" + owner, String.valueOf(error.getCause()));
            sendVoyagesErrorBroadcast(owner, getErrorType(error));
        }

В этом классе его не принимают.

        MyBaseVoyageFragment.java
        String broadcastTAG = BROADCAST_TAG + owner + String.valueOf(direction);
        if (intent != null) { // put the receiving data on intent
            Log.e("received", intent.getAction()); // succesfull action
            String intentAction = intent.getAction();
            if (intentAction.equals(broadcastTAG)) {

                parseIntentDataAndLoadVoyagesAdapter = new ParseIntentDataAndLoadVoyagesAdapter(intent);
                parseIntentDataAndLoadVoyagesAdapter.execute("");  // asenkron görevi çalıştır.
                //loadVoyagesToAdapter();
            } else if (intentAction.equals(BROADCAST_TAG + owner + "Error")) {
                showLoadingDialog(false);
                setErrorView(intent.getIntExtra("data", 0));
            }
        }
...