在Volley中发布字符串和数组?

时间:2018-06-11 09:24:39

标签: android post android-volley

我想知道如何在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));
                }
}

3 个答案:

答案 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并与其他参数一起传递,如下所示,并使用分隔符,

将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服务代码 你可以尝试别的。

希望它可以帮到你