2016-12-02 16 views
0

volleyライブラリを使用してAPIからデータを取得したいが、私はvolley要求でパラメータを送信する方法を知らない。私はポストリクエストを使うか、リクエストを出してもらうかを決めることができません。 は、私がここでボレー要求APIからデータを取得するurlで5つのパラメータを投稿する

public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
    client.post(getAbsoluteUrl(url), params, responseHandler); 
} 

public static void put(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
    client.put(getAbsoluteUrl(url), params, responseHandler); 
} 

を作るために、次のコードを使用しています私の全体のコードです:

 private void getCalendarEvents(String StartDate,String EndDate,String UserId,String CityID,String IsAdmin) { 
    RequestParams requestParams = new RequestParams(); 
    requestParams.put("StartDate", StartDate); 
    requestParams.put("EndDate", EndDate); 
    requestParams.put("UserId", UserId); 
    requestParams.put("CityID", CityID); 
    requestParams.put("IsAdmin", IsAdmin); 

    RelayRestClient.put("CalendarGetEvents", requestParams, new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      if (responseBody != null) 
       Log.e("success", new String(responseBody)); 
      parse(new String(responseBody)); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      Log.e("failure", new String(responseBody)); 
     } 
    }); 
} 
     protected void parse(String s) { 
       try { 
        JSONObject mainObject = new JSONObject(s); 
        if (mainObject.has("Status")) { 

         String Status = mainObject.getString("Status"); 
         if (Status.equalsIgnoreCase("200")) { 

          if (mainObject.has("Data")) { 
           JSONArray datArray = mainObject.getJSONArray("Data"); 
           eventBeanArrayList = new ArrayList<>(); 
           if (datArray.length() > 0) { 
            for (int i = 0; i < datArray.length(); i++) { 
             EventsBean eventsBean = new EventsBean(); 
             JSONObject internalDataObject = datArray.getJSONObject(i); 

             if (internalDataObject.has("UserID")) { 
              eventsBean.setUserID(internalDataObject.getString("UserID")); 
             } 
             if (internalDataObject.has("EventID")) { 
              eventsBean.setEventID(internalDataObject.getString("EventID")); 
             } 
             if (internalDataObject.has("CityID")) { 
              eventsBean.setCityID(internalDataObject.getString("CityID")); 
             } 
             if (internalDataObject.has("Title")) { 
              eventsBean.setTitle(internalDataObject.getString("Title")); 
             } 
             eventBeanArrayList.add(eventsBean); 
            } 
            setViewEventData(eventBeanArrayList); 
           } else { 

            showMessage("No Events found for this date."); 
           } 
          } 
         } else { 
          showMessage("Server error, Please try again"); 
         } 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
private void setViewEventData(ArrayList<EventsBean> eventBeanArrayList) { 
    lv_events.setAdapter(new ListAdapter(ViewEventActivity.this,eventBeanArrayList)); 
} 

答えて

1

あなたのボレーリクエストのgetParamsメソッドをオーバーライドすることでハッシュマップとポストパラメータを使用することができます。それは次のようになります:

StringRequest sr = new StringRequest(Request.Method.POST, url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         //Handle Response 

        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         //Handle volley Error 

        } 
       }){ 
      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<>(); 
       params.put(key1,value1); 
       params.put(key2,value2); 
       params.put(key3,value3); 
       params.put(key4,value4); 
       params.put(key5,value5); 
       return params; 
      } 

     }; 
+0

@MohiniMonga私の喜び –

関連する問題