用HTTP获取发送数组

我怎样才能发送一个数组与HTTP获取请求?

我正在使用GWT客户端发送请求。

这取决于目标服务器接受的内容。 这没有确定的标准。 查看ao 维基百科:查询string :

虽然没有明确的标准,但大多数Web框架允许将多个值与单个字段相关联(例如, field1=value1&field1=value2&field2=value3 )。 [4] [5]

通常,当目标服务器使用像Java( Servlet )这样的强types编程语言时,则可以将它们作为具有相同名称的多个参数来发送。 API通常提供一个专用方法来获取多个参数值作为数组。

 foo=value1&foo=value2&foo=value3 
 String[] foo = request.getParameterValues("foo"); // [value1, value2, value3] 

request.getParameter("foo")也可以工作,但它只会返回第一个值。

 String foo = request.getParameter("foo"); // value1 

而且,当目标服务器使用像PHP或RoR这样的弱types语言时,为了触发语言返回一个值的数组而不是一个单一的值,你需要使用括号[]来后缀参数名称。

 foo[]=value1&foo[]=value2&foo[]=value3 
 $foo = $_GET["foo"]; // [value1, value2, value3] echo is_array($foo); // true 

如果你仍然使用foo=value1&foo=value2&foo=value3 ,那么它将只返回第一个值。

 $foo = $_GET["foo"]; // value1 echo is_array($foo); // false 

请注意,当您将foo[]=value1&foo[]=value2&foo[]=value3发送到Java Servlet时,仍然可以获取它们,但是您需要使用包括大括号的确切参数名称。

 String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3] 

我知道这个post真的很老,但我不得不回复,因为虽然BalusC的答案被标记为正确,但并不完全正确。

你必须写这个查询,添加“[]”到这样的foo:

 foo[]=val1&foo[]=val2&foo[]=val3