在http发送请求中发送数组Android

时间:2016-03-22 13:20:42

标签: android androidhttpclient

我想通过post请求将字符串数组数据从android发送到服务器。请求参数应该像这个字符串数组,例如

[" 56e7e4ade"" 56e7e435ade"]

我发送这个

for(int i=0; i<connectedpeople.size(); i++)
    {
      nameValuePairs.add(new BasicNameValuePair("myarray[]", connectedpeople.get(i).getObjectId()));
    }

但那不起作用。任何人都可以对此提出建议吗?

4 个答案:

答案 0 :(得分:0)

请改用JSONArray。干杯:)

JSONArray jArry=new JSONArray();
for(int i=0; i<connectedpeople.size(); i++) {
    jArry.put(connectedpeople.get(i).getObjectId());
}
nameValuePairs.add(new BasicNameValuePair("myarray",jArry.toString()));

答案 1 :(得分:0)

/ **根据您的要求对其进行格式化** /

RequestParams parameter = new RequestParams();
 ArrayList<YourModelClass> yourSelectedArrayList=new ArrayList();//fill `this array according to your requirement`
 JSONObject jsonObject=null;
JSONArray jsonArray=new JSONArray();
 for (int i = 0; i < yourSelectedArrayList.size(); i++) {
                   jsonObject = new JSONObject();
                    try {

                        jsonObject.put("truckType",yourSelectedArrayList.get(i).getName());

                        jsonArray.put(jsonObject);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

parameter.put("",jsonArray.toString());

答案 2 :(得分:0)

使用此代码:

        List<NameValuePair> param = new ArrayList<NameValuePair>();

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();

            for(int i=0; i<connectedpeople.size(); i++)
            {
               param.add(new BasicNameValuePair("myarray", connectedpeople.get(i).toString());
            }
        }

答案 3 :(得分:0)

我使用简单的JsonArray发布数据并且工作正常。无需使用namevalue对或JsonObject。

JSONArray myarray = new JSONArray();
 for(int i=0;i<favoritesUserList.size(); i++){
     myarray.put(favoritesUserList.get(i).getObjectId());
 }
new getUserData().execute(myarray);

非常感谢大家。