2017-11-11 3 views
0

작동하지 않는 코드는 다음과 같습니다. 이 코드에 문제가 있으면 매개 변수를 전송하지 않는 이유를 확인하십시오. 나는 안드로이드가 처음이다. Android 발리가 매개 변수를 전송하지 않습니다.

private void sendParams() 
{ 
    JsonArrayRequest movieReq = new JsonArrayRequest(AppConfig.URL_Q_RECIPIES, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 
        hidePDialog(); 

        // Parsing json 
        for (int i = 0; i < response.length(); i++) { 
         try { 

          JSONObject obj = response.getJSONObject(i); 
          Recipie movie = new Recipie(); 
          movie.setRecipieName(obj.getString("recipie_name")); 
          movie.setId(obj.getInt("id")); 
          // build the image URL here 
          String s = AppConfig.URL_IMAGE + obj.getInt("id") + ".jpeg"; 
          movie.setImageURL(s); 
          movie.setPrimaryIngrediant(obj.getString("prim_ingr")); 
          movie.setUrl(obj.getString("url")); 


          // adding movie to movies array movie is nothing but recipie 
          movieList.add(movie); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 

        // notifying list adapter about data changes 
        // so that it renders the list view with updated data 
        adapter.notifyDataSetChanged(); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

      Log.e(TAG, "Filter error: " + error.getMessage()); 
      Toast.makeText(getApplicationContext(), 
        error.getMessage(), Toast.LENGTH_LONG).show(); 
      hidePDialog(); 



     } 
    }) { 

      @Override 
      protected Map<String, String> getParams() { 
       // Posting parameters to login url 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("ind_ajwain", Integer.toString(session.isAjwainChecked())); 
       //params.put("ind_asaftide", Integer.toString(session.isAsaftideChecked())); 
       params.put("rec_name", "chicken"); /// change this 
       params.put("ind_ginger", "0"); 



       //params.put("password", password); 

       return params; 
      } 

    }; 
    Log.d(TAG, movieReq.toString()); 
    //movieReq. 

    AppController.getInstance().addToRequestQueue(movieReq); 
} 

나는 돈 코딩을 얻기 위해이 링크를 따라 : 소스 : 만 매개 변수를 변경, 위의 많은 변경하지 않은 https://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

.

답변

0

new JsonArrayRequest에 요청 방법을 전달하지 않았습니다. 당신은 합격해야합니다 Request.Method.POST 또는 Request.Method.GET

+0

IT는 [소스 코드]에'Method.GET'베이스 (https://android.googlesource.com/platform/frameworks/volley/+/e7cdf98078bc94a2e430d9edef7e9b01250765ac/src/com/android/volley 인 /toolbox/JsonArrayRequest.java). 나는 OP가 명확한 문맥을 제공하지 않았기 때문에 지금이 대답을 고려하지 않을 것이다. – Enzokie

1

발리 (Volley)를 사용하여 서버로 데이터를 전송하려면 아래 코드를 참조하십시오.

1 단계 : 데이터를 보내려면 POST 방법을 사용하십시오.

방법 아래 작성 :

private void makeJsonSend() { 

    StringRequest jsonObjReq = new StringRequest(Request.Method.POST,Const.ServiceType.URL, 
      new Response.Listener<String>() { 

       @Override 
       public void onResponse(String response) { 
        Log.e("response:forgot", response); 
        jsonParseResponse(response); 
       } 

      }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 


      //show error message here 
     } 
    }) { 

     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("email","email"); 

      //pass parameter here 

      Log.i("request send data", params.toString()); 

      return params; 
     } 


     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<>(); 

      //If you have header parameter then set here 
      return headers; 
     } 


    }; 

    AppController.getInstance().addToRequestQueue(movieReq); 

} 

2 단계 : 해당 작업의 응답을 가지고 응답 방법을. 기본적

private void jsonParseResponse(String response) { 

    try { 
     JSONObject jsonObject = new JSONObject(response); 

     if (jsonObject.getString("status").equals("200")) { 

      cc.showToast(jsonObject.getString("message")); 




     } else { 

      cc.showToast(jsonObject.getString("message")); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
     Log.e("Forgot Error",e.toString()); 
    } 

} 
+0

이 코드에서도 같은 일이 발생합니다. – user1130456

+0

Postman에서 Webservice를 확인 하시겠습니까 ?? –