2017-02-14 10 views
0

В моем приложении я использую библиотеку volley для получения данных json. Ниже мой код, чтобы передать параметры веб-службы:Как использовать библиотеку волейбола, чтобы передать параметры веб-службе и получить ответ массива json?

private void getProductName(final String id) { 

    pDialog.setMessage("Please wait.."); 
    pDialog.setTitle("Loading"); 
    showDialog(); 

    JsonArrayRequest req = new JsonArrayRequest(Constants.DARSHAN_URL+Constants.PRODUCT_NAME, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 

        try { 
         // Parsing json array response 
         // loop through each json object 
         for (int i = 0; i < response.length(); i++) { 

          JSONObject person = (JSONObject) response.get(i); 

          String material_id = person.getString("material_id"); 
          String material_desc = person.getString("material_desc"); 

          HashMap<String, String> maim_category_array = new HashMap<>(); 

          maim_category_array.put("material_id", material_id); 
          maim_category_array.put("material_desc", material_desc); 

          productName.add(maim_category_array); 

         } 

         adapter = new GridviewAdapter(ProductNameActivity.this, productName); 
         grid.setAdapter(adapter); 
         grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
          @Override 
          public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 

           HashMap<String, String> map = (HashMap<String, String>)arg0.getItemAtPosition(position); 

           Toast.makeText(ProductNameActivity.this, map.get("material_id"), Toast.LENGTH_LONG).show(); 
           Intent i = new Intent(ProductNameActivity.this, SubProductActivity.class); 
           i.putExtra("BREADCRUMB1", map.get("material_desc")); 
           i.putExtra("MATERIAL_ID", map.get("material_id")); 
           i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
           startActivity(i); 
          } 
         }); 

         // txtResponse.setText(jsonResponse); 

        } catch (JSONException e) { 
         e.printStackTrace(); 
         Toast.makeText(getApplicationContext(), 
           "Error: " + e.getMessage(), 
           Toast.LENGTH_LONG).show(); 
        } 

        hideDialog(); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      Toast.makeText(getApplicationContext(), 
        error.getMessage(), Toast.LENGTH_SHORT).show(); 
      hideDialog(); 
     } 
    }) { 

     @Override 
     protected Map<String, String> getParams() { 
      // Posting parameters to login url 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("material_id", id); 

      return params; 
     } 

    }; 

    // Adding request to request queue 
    DarshanApplication.getInstance().addToRequestQueue(req); 
} 

Я передаю material_id в ссылке. Но получение ответа как com.android.volley.servererror

Как решить проблему ?? пожалуйста, помогите !!

+2

не означает 'servererror' означает, что есть ошибка сервера? А также, что именно servererror? какой код ошибки и сообщение? –

+0

после отладки кода. Я получаю ошибку только как ошибку: com.android.volley.servererror. сообщение об ошибке пустое. – Android

+0

@Sweekar Проверьте полученный ответ. Это скажет вам, где все пошло не так. Используйте инструменты, такие как клиент предварительного отдыха, чтобы проверить свои параметры. – Stallion

ответ

0

Я не знаю, почему вы хотите использовать залп, но есть и другой способ. Я использую встроенные методы java и android для извлечения JSON и отображения их. Вы можете посмотреть здесь

» JsonFetch
+0

У меня проблема с отправкой параметров в метод веб-службы. Не с помощью json. – Android

+0

Oh!. Вы можете отправить на сервер также с тем же методом. вам просто нужно сделать метод запроса для публикации. –