无法使用nameValuePairs(android)将数组发送到服务器(Cant send array to server using nameValuePairs(android))
对不起我的英语不好。 我的人给了我一个项目,我需要更改一些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()));他们都没有工作,我不知道是做什么的。
Sorry for my english. My people gave me a project and I need to change some POST requests. I used retrofit before, but this project uses org.apache. I know that it's bad, but I only need to send an array to the server. I tried it many times but it doesn't work. I need to send the server something like this:
{"name": "hellow", "id": [{"1"}, {"2"}]}Here is what I tried to do:
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()));None of them worked, I don't know what do.
最满意答案
尝试一下我不确定它是否适用于您的情况。
nameValuePairs.add(new BasicNameValuePair("id", type[i]));使用for循环来包装数组。
for (int i = 0; i < type.length; i++) { nameValuePairs.add(new BasicNameValuePair("id[]",type[i])); }Try it out I am not sure its working in your case or not.
nameValuePairs.add(new BasicNameValuePair("id", type[i]));Use for loop to wrap your array.
for (int i = 0; i < type.length; i++) { nameValuePairs.add(new BasicNameValuePair("id[]",type[i])); }更多推荐
发布评论