gpt4 book ai didi

android - 无法使用 nameValuePairs(android) 将数组发送到服务器

转载 作者:可可西里 更新时间:2023-11-01 17:01:03 26 4
gpt4 key购买 nike

对不起我的英语。我的人给了我一个项目,我需要更改一些 POST 请求。之前用的是retrofit,但是这个项目用的是org.apache。我知道这很糟糕,但我只需要向服务器发送一个数组即可。我试了很多次,但没有用。我需要向服务器发送这样的内容:

{"name": "hellow", "id": [{"1"}, {"2"}]}

这是我尝试做的:

1.

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("link");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", name));

int i = 0;
for (Iterator<MyCoolObject> it = checkedSet.iterator(); it.hasNext(); ) {
MyCoolObject f = it.next();
nameValuePairs.add(new BasicNameValuePair("id[" + String.valueOf(i)+ "]", f.getUserId()));
i++;
}

2.

ArrayList<String> array = new ArrayList<String>();
for (Iterator<MyCoolObject> it = checkedSet.iterator(); it.hasNext();) {
MyCoolObject f = it.next();
array.add(f.getUserId());
}
nameValuePairs.add(new BasicNameValuePair("id", array.toString()));

3.

JSONArray jsonArray = new JSONArray();
for (Iterator<MyCoolObject> it = checkedSet.iterator(); it.hasNext(); ) {
MyCoolObject f = it.next();
jsonArray.put(f.getUserId());
}
nameValuePairs.add(new BasicNameValuePair("id", jsonArray.toString()));

它们都不起作用,我不知道该怎么做。

最佳答案

使用 JSONObjectJSONArray 创建 JSON 字符串以将 JSON 发送到服务器,而不是使用 BasicNameValuePair 创建它:

JSONObject json=new JSONObject();
json.put("name", name);

JSONArray jsonArray=new JSONArray();
for (Iterator<MyCoolObject> it = checkedSet.iterator(); it.hasNext(); ) {
MyCoolObject f = it.next();
jsonArray.put(f.getUserId());
}

// add jsonArray JSONArray to json JSONObject
json.put("id", jsonArray);

现在使用 json.toString() 在服务器上发送所需的 JSON 字符串。

关于android - 无法使用 nameValuePairs(android) 将数组发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com