我想知道如何在Volley的getParams中通过POST发布字符串和数组。
任何建议都会很棒。
EG:
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("username", username);
params.put("email", email);
params.put("password", password);
params.put("dob", dob);
for (int i=0; i< array_list_likes.size(); i++) {
params.put("likes["+i+"]", array_list_likes.get(i));
}
}
答案 0 :(得分:0)
这样做就发布了字符串和数组
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("username", username);
params.put("email", email);
params.put("password", password);
params.put("dob", dob);
JSONArray jsonArrayLikes = new JSONArray();
for (int i=0; i< array_list_likes.size(); i++) {
JSONObject jsonLikes = new JSONObject();
jsonLikes .put("likes", array_list_likes.get(i).getLikes());
jsonArrayLikes.put(jsonLikes);
}
params.put("likes" , jsonArrayLikes.toString());
}
答案 1 :(得分:0)
试试这个:
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("username", username);
params.put("email", email);
params.put("password", password);
params.put("dob", dob);
JSONObject jsonObject=new JSONObject();
for (int i=0; i< array_list_likes.size(); i++) {
arr[i]= array_list_likes.get(i).getLikes();
jsonObject.put("likes["+i+"]",arr[i]);
}
params.put("params",jsonObject.toString());
return params;
}
答案 2 :(得分:0)
可以将数组转换为String并与其他参数一起传递,如下所示,并使用分隔符,
这可能不是最好的方式,但它的方法很简单
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("username", username);
params.put("email", email);
params.put("password", password);
params.put("dob", dob);
params.put("likes", String.valueOf(array_list_likes));
}
如果您编写自己的Web服务,这一切都取决于服务器端这样您可以将Array转换为String,但是如果您要传递给现有的Web服务代码 你可以尝试别的。
希望它可以帮到你