首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用url发布5个参数以从API获取数据

使用url发布5个参数以从API获取数据
EN

Stack Overflow用户
提问于 2016-12-02 08:47:21
回答 1查看 54关注 0票数 0

我想使用volley库从API中获取数据,但是我不知道如何使用volley请求发送参数。我无法弄清楚是使用Post请求,还是获得请求或放置请求。我正在使用下面的代码来发出volley请求

代码语言:javascript
复制
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);
}

这是我的全部代码:

代码语言:javascript
复制
     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));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 09:07:06

您可以通过重写您的volley请求的HashMaps方法来使用getParams和post参数。它应该是这样的:

代码语言:javascript
复制
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;
            }

        };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40928023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档