Я пытаюсь передать строковый массив в PHP-скрипт как данные POST в приложении для Android, но у меня есть проблема.Передайте массив строк скрипту PHP как POST
это мой код клиента сторона:
ArrayList<NameValuePair> querySend = new ArrayList<NameValuePair>();
for (Stop s : stops) {
querySend.add(new BasicNameValuePair("stop_data[]", s.getNumber()));
}
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.myURL/myPHPScript.php");
httppost.setEntity(new UrlEncodedFormEntity(querySend));
HttpResponse response = httpclient.execute(httppost);
и это мой код PHP скрипта:
foreach($_GET['stop_data'] as $stop) {
// do something
}
Если я запускаю мой код Java я получу эту ошибку ответа от PHP скрипта:
Warning: Invalid argument supplied for foreach() in /web/htdocs/www.myURL/myPHPScript.php on line 6
null
В противном случае, если я поставлю запрос на мой браузер manully таким образом:
http://www.myURL/myPHPScript.php?stop_data[]=768&stop_data[]=1283
Я дам правильный ответ!
если я попробую тот же код, но если i POST не массив, а одна строка, проходящая и принимающая переменные stop_data без [], это работает! Я не могу понять, где ошибка! Возможно, что [] в имени BasicNameValuePair String ошибочно принимают какую-то кодировку? Мне нужно передать массив, как я должен это сделать?
Почему вы не создать JSON и отправить на PHP? – Ajeesh