Я пытаюсь опубликовать массив PHP, но когда я использую код ниже, ничего не передается и $_POST
массив выглядит как {}
, Как я могу опубликовать массив в php?
MultipartRequest request = new MultipartRequest();
request.setUrl(url);
request.setPost(true);
String[] value = {"a","b","c"};
request.addArgument(argument, value);
Спасибо!
Ответ, предоставленный @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
}
...
использование 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);