2017-11-11 154 views
0

不工作的代碼如下。看到這個代碼有什麼問題,爲什麼它沒有發送參數。我是Android新手。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.POSTRequest.Method.GET

+0

默認情況下它是在[源代碼]'Method.GET'鹼(https://android.googlesource.com/platform/frameworks/volley/+/e7cdf98078bc94a2e430d9edef7e9b01250765ac/src/com/android/volley /toolbox/JsonArrayRequest.java)。由於OP沒有提供明確的問題背景,我現在不會考慮這個答案。 – Enzokie

1

要使用Volley向服務器發送數據,請參閱下面的代碼。

Step1:使用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? –