отправка php-массива с помощью POST-андроида

Я хочу отправить php-массив через POST с android на php-сервер, и у меня есть этот код

HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); StringEntity dades = new StringEntity(data); httppost.setEntity(dades); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); HttpEntity resEntity = response.getEntity(); return resEntity.getContent(); 

Я думаю, что php-массив может быть в StringEntity dades = new StringEntity(data); (данные – это php-массив). Может кто-нибудь мне помочь?

 public void postData() { // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); try { // Add your data //you can add all the parameters your php needs in the BasicNameValuePair. //The first parameter refers to the name in the php field for example // $id=$_POST['id']; the second parameter is the value. List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("id", "12345")); nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block }} 

Приведенный выше код отправит такой массив: [id=12345, stringdata=AndDev is Cool!]

Если вы хотите двумерный массив, вы должны сделать это

 Bundle b= new Bundle(); b.putString("id", "12345"); b.putString("stringdata", "Android is Cool"); nameValuePairs.add(new BasicNameValuePair("info", b.toString())); 

Это создаст массив, содержащий массив:

 [info=Bundle[{id=12345, stringdata=Android is Cool}]] 

Надеюсь, это то, что вы хотите.

Вы можете сделать что-то вроде этого:

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

где цвет – ваш тег массива. Просто пользователь [] после тэга массива и значения значения. Например. если имя тега массива – это colour то используйте его как colour[] и поместите значение в цикл.