如何使用Java模拟$ .ajax数组POST请求

时间:2015-06-15 01:11:05

标签: java javascript php ajax

我试图用java程序模拟ajax post请求。

模拟有效但如果我发布一个数组,它会以字符串形式返回。

我正在使用番石榴:

Map<String, String> data = new HashMap<String, String>();

data.put(URLEncoder.encode("affected_ids[]", "UTF-8"), URLEncoder.encode(Joiner.on(":").join(arrIds), "UTF-8"));
data.put("select_all", "true");

String d = Joiner.on("&").withKeyValueSeparator("=").join(data);

d的内容如下:

select_all=false&affected_ids%5B%5D=504728%3A121741%3A121742%3A124908%3A316787%3A560950%3A560955%3A560957%3A560958%3A560960%3A516653%3A504729%3A504732%3A504741%3A504748%3A504749%3A552317%3A552320%3A552321%3A552324 

它转换为PHP字符串:

array(1) {
  [0]=>
  string(139) "504728:121741:121742:124908:316787:560950:560955:560957:560958:560960:516653:504729:504732:504741:504748:504749:552317:552320:552321:552324"
}

我尝试过不同的分隔符:&#34;,&#34;和&#34; &#34;,但没有运气。

什么是正确的格式?

1 个答案:

答案 0 :(得分:2)

如果您希望PHP自动将数据识别为数组,则必须发送多个具有相同名称的参数,每个参数都以[]结尾。

例如:

foo[]=1&foo[]=2

将在PHP中以$_GET['foo']访问,返回数组array(1,2)

可在Variables From External SourcesHow do I create arrays in a HTML <form>? 找到更多信息。