为一个参数发布多个值?
Posting multiple values for one argument?
我正在尝试 post 一个数组到 PHP,但是当我使用下面的代码时,没有任何内容被传输并且 $_POST
数组显示为 {}
。我怎样才能 post 一个数组到 php?
MultipartRequest request = new MultipartRequest();
request.setUrl(url);
request.setPost(true);
String[] value = {"a","b","c"};
request.addArgument(argument, 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);
@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
}
...
我正在尝试 post 一个数组到 PHP,但是当我使用下面的代码时,没有任何内容被传输并且 $_POST
数组显示为 {}
。我怎样才能 post 一个数组到 php?
MultipartRequest request = new MultipartRequest();
request.setUrl(url);
request.setPost(true);
String[] value = {"a","b","c"};
request.addArgument(argument, 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);
@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
}
...