2013-11-17 2 views
0

Я пытаюсь передать строковый массив в 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 ошибочно принимают какую-то кодировку? Мне нужно передать массив, как я должен это сделать?

+0

Почему вы не создать JSON и отправить на PHP? – Ajeesh

ответ

0

используется метод POST и в PHP код, который вы должны использовать $ _POST

попробовать этот

foreach($_POST['stop_data'] as $stop) { 
    // do something 
} 

этот путь с помощью метода GET

http://www.myURL/myPHPScript.php?stop_data[]=768&stop_data[]=1283 
+0

Я идеальный идиот! -_- Спасибо ....! –

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