发送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。