Volley StringRequest中的数组参数

时间:2016-03-17 09:19:13

标签: php android arrays android-volley

发送StringRequest时遇到了一些麻烦。我的一个参数必须是一个数组

以下是请求:

public void sendToWebService(final String login, final String mdp, final Reprise rep){
    String url = MyApplication.getUrlWs();
    final RequestQueue request = RequestQueueSingleton.getInstance().getRequestQueue();
    StringRequest sr = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            rep.setStatus(1);
            RepriseDAO db = new RepriseDAO(context);
            db.addVehicule(rep);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    }){
        @Override
        protected Map<String,String> getParams(){

            Map<String, String> params = new HashMap<String, String>();
            params.put("login", login);
            params.put("password", mdp);


            ...


            JSONArray jarray = new JSONArray();
            for (Equipement equ : rep.getEquipements()) {
                jarray.put(equ.getId());
            }
            String data= jarray.toString();
            params.put("carOptions", data);

            params = checkParams(params); //this put an empty string if a param is null
            return params;
        }
    };

    request.add(sr);
}

这是webservice的php代码。我只展示了有趣的部分:

foreach($_POST['carOptions'] as $v)
{
    $query_options='INSERT INTO cars_options_car (carId, optionId) VALUES (' . (int)$lastId . ',' . (int)$v . ')';
    $request_options=mysql_request($query_options); 
}

正如您所看到的,Web服务期望在&#34; carOptions&#34;中获得一个数组。 PARAM。经过一番研究,我试图制作一个JSONArray并将其转换为String。该请求很受Web服务的欢迎,但似乎数组没有很好地转换。

我应该使用其他类型的请求吗?我尝试过JSONRequest,但似乎我的网络服务不接受JSONRequest。

0 个答案:

没有答案