2012-09-11 6 views
0

Я пытаюсь сделать вызов JSON на сервер, используя API HttpClient. Код sinppet показан ниже.Настройка параметров в HTTP POST

HttpClient httpClient = new DefaultHttpClient(); 
HttpGet httpPost = new HttpPost(URLString); 
HttpResponse response = httpClient.execute(httpPost); 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
nameValuePairs.add(new BasicNameValuePair("method", "completeUserLogin")); 
String[] params = new String[]{"100408"}; 
response = httpClient.execute(httpPost); 

Я хочу добавить params к nameValuePairs. Класс BasicNameValuePair не позволяет добавлять массивы. Есть предположения?

Заранее благодарен!

+0

вы должны попытаться преобразовать ваш массив в строковое представление ожидаемого по почте, а затем добавить его. – CasualT

+0

вы знаете что, просто посмотрите ответ jeet. :) – CasualT

ответ

1

Если вы размещаете данные в формате json, вам не следует публиковать такие параметры. Вместо этого создайте JSONObject, поместите эти значения в этот объект json и получите строку из этого json-объекта, а затем создайте StringEntity и установите этот объект Entity в HttpPost.

Создание JSONObject для запроса:

JSONObject json=new JSONObject(); 
json.put("method", "completeUserLogin"); 
JSONArray arr= new JSONArray(); 
arr.put("100408"); 
json.put("params", arr); 

String params=json.toString(); 
6

Посмотрите на это. Здесь они передают массив в BasicNameValuePairs.Here цвета - это массив, который мы будем отправлять на сервер. Вы должны использовать свой массив, а не цвета.

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("colours[0]","red")); 
nameValuePairs.add(new BasicNameValuePair("colours[1]","white")); 
nameValuePairs.add(new BasicNameValuePair("colours[2]","black")); 
nameValuePairs.add(new BasicNameValuePair("colours[3]","brown")); 

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
response = httpClient.execute(httpPost); 
+0

спасибо! ты меня поймаешь. – Renjith

Смежные вопросы