2016-06-22 2 views
0

Я пытаюсь получить данные с сервера, я выполнил всю часть кодирования. Я получаю код статуса 200 (успех), но не получаю данные.Не получать данные с сервера

Это мой JSON данные:

{ 
    "status": 200, 
    "data": [ 
    { 
     "id": "1", 
     "company_id": "8", 
     "customer_id": "17", 
     "driver_id": null, 
     "city_id": "2", 
     "vehicletype_id": "4", 
     "status": "Pending", 
     "source_long": "77.59505250000007", 
     "source_lat": "12.9998698", 
     "dest_long": "77.62877609999998", 
     "dest_lat": "12.946679", 
     "source": "Jayamahal, Bengaluru, Karnataka, India", 
     "destination": "Ejipura Bus Stand, Ejipura Main Road, Ejipura, Bengaluru, Karnataka, India", 
     "bookingtime": "2016-06-14 06:55:38" 
    } 
    ] 
} 

Это мой код, чтобы получить данные:

JsonObjectRequest jor = new JsonObjectRequest(Request.Method.GET, OPEN_BOOKINGS_URL, null, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       String string = null; 
       JSONArray ja =null; 
       try { 
        Toast.makeText(getContext(), "You are in Try Block", Toast.LENGTH_SHORT).show(); 
        ja=response.getJSONArray("data"); 
        if(ja!=null) 
        { 
         Toast.makeText(getContext(), "Ja is not null with data", Toast.LENGTH_SHORT).show(); 
         for (int i=0; i<ja.length(); i++) 
         { 
          Toast.makeText(getActivity(), "for loop", Toast.LENGTH_SHORT).show(); 
          JSONObject jo = ja.getJSONObject(i); 
          Toast.makeText(getActivity(), jo.toString(), Toast.LENGTH_SHORT).show(); 
         } 
        } 
        else 
        { 
         tv.setText("ja is null"); 
         // Toast.makeText(getActivity(), "ja is null", Toast.LENGTH_SHORT).show(); 
        } 


       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       Toast.makeText(getActivity(), response.toString(), Toast.LENGTH_SHORT).show(); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       tv.setText(error.toString()); 
      } 
     }); 
     rq = Volley.newRequestQueue(getContext()); 
     rq.add(jor); 
    } 

В коде я написал тост проверить, является ли мой код блока выполнение или нет.

Я получаю данные, такие как,

{ 
    "status": 200, 
    "data": [ 
    {} 
    ] 
} 
+0

если код выше точно как выглядит ваш json, тогда это не правильно. Закрыть скобки. –

+0

Фактически вы получаете этот ответ в методе onResponse(), поэтому в вашем коде нет ошибки. Попросите заднюю часть положить лог с их стороны и проверить. Кажется, в массиве данных нет данных. – Jeevanandhan

+0

@Jeeva Спасибо за ваш повтор –

ответ

0

Пожалуйста, попробуйте использовать следующий код

private void callDashboradWS() { 
    AsyncTask<String, String, String> _Task = new AsyncTask<String, String, String>() { 
     String _responseMain = ""; 


     @Override 
     protected void onPreExecute() { 
      Constant.showLoader(getActivity()); 

     } 

     @Override 
     protected String doInBackground(String... arg0) { 
      if (NetworkAvailablity.checkNetworkStatus(getActivity())) { 
       try { 
        HttpURLConnection urlConnection; 
        // String query = builder.build().getEncodedQuery(); 
        URL url = new URL("YOURSERVICEURL)); 
        System.out.println(url.toString() + " <<<"); 
        urlConnection = (HttpURLConnection) ((url.openConnection())); 
        urlConnection.setDoInput(true); 
        urlConnection.setDoOutput(true); 
        urlConnection.setUseCaches(false); 
        urlConnection.setChunkedStreamingMode(1024); 
        urlConnection.setRequestMethod("GET"); 
        urlConnection.setReadTimeout(10000); 
        urlConnection.connect(); 


        // Write 
        OutputStream outputStream = urlConnection.getOutputStream(); 
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
        // writer.write(query); 
        writer.close(); 
        outputStream.close(); 

        System.out.println("Response code :-- " + urlConnection.getResponseCode()); 
        int responsecode = urlConnection.getResponseCode(); 
        //Read 

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8")); 
        String line = null; 
        StringBuilder sb = new StringBuilder(); 
        while ((line = bufferedReader.readLine()) != null) { 
         System.out.println("in while"); 
         sb.append(line); 
        } 
        bufferedReader.close(); 
        _responseMain = sb.toString(); 


       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       getActivity().runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         // TODO Auto-generated method stub 
         Constant.showToast("Server Error ", getActivity()); 
        } 
       }); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      Constant.hideLoader(); 
      System.out.println("SIGNIN RESPONSE: " + _responseMain); 

     } 


    }; 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     _Task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (String[]) null); 
    } else { 
     _Task.execute((String[]) null); 
    } 
} 
0

Вы не получают данные со стороны сервера, то это не проблема на вашей стороне. . Вы должны проверить на стороне сервера, почему бы не отправлять данные. вы сделали хорошо ...

+0

Когда я ввожу URL-адрес api в Интернете, я получаю полные данные. как я сказал в начале моего вопроса. Когда я пытаюсь в своем приложении, он показывает null. например '{"status": 200, "data": [{}]}' –

+0

Pls SHARE url. Он должен работать. Ваш звонок прав – Kush