Размещать несколько значений для одного аргумента?

Я пытаюсь опубликовать массив PHP, но когда я использую код ниже, ничего не передается и $_POST массив выглядит как {}, Как я могу опубликовать массив в php?

MultipartRequest request = new MultipartRequest();
request.setUrl(url);
request.setPost(true);
String[] value = {"a","b","c"};
request.addArgument(argument, value);

Спасибо!

2

Решение

Ответ, предоставленный @tizbn, может быть в какой-то степени верным, но не всегда работает с php, поэтому я использовал StringBuilder как показано ниже, но это решение требует, чтобы вы знали размер вашего массива заранее:

...
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");

String[] value = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
StringBuilder builder = new StringBuilder();
value[i] = (builder.append("\"").append(list.get(i)).append("\"")).toString();
}
Arrays.toString(value);

ConnectionRequest request = new ConnectionRequest();
request.setUrl(url);
request.setPost(true);
request.addArgument("arg", value);
...

На стороне php вы читаете значения следующим образом:

...
$arg = isset($_POST['arg']) ? $_POST['arg'] : '';
$argArray = json_decode($arg);
foreach ($argArray as $value) {
...
// do whatever you want with $value
}
...
2

Другие решения

использование ConnectionRequest если вы не прикрепляете файлы вместо MultipartRequest:

ConnectionRequest request = new ConnectionRequest();
request.setUrl(url);
request.setPost(true);

Используйте библиотеку json, чтобы добавить свой массив:

JSONArray array = new JSONArray();
array.put("hi");
array.put("hello");
String value = array.toString();

Затем добавьте его в качестве аргумента к вашему запросу:

request.addArgument("argument", value);
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector