Enviar una matriz con HTTP Obtenga

¿Cómo puedo enviar una matriz con una solicitud HTTP Get?

Estoy usando el cliente GWT para enviar la solicitud.

Eso depende de lo que acepte el servidor de destino. No hay un estándar definitivo para esto. Ver también ao Wikipedia: Cadena de consulta :

Si bien no existe un estándar definitivo, la mayoría de los marcos web permiten que se asocien múltiples valores con un solo campo (por ejemplo, field1=value1&field1=value2&field2=value3 ). [4] [5]

Generalmente, cuando el servidor de destino utiliza un lenguaje de progtwigción fuerte como Java ( Servlet ), puede enviarlos como parámetros múltiples con el mismo nombre. La API generalmente ofrece un método dedicado para obtener múltiples valores de parámetros como una matriz.

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

El request.getParameter("foo") también funcionará en él, pero devolverá solo el primer valor.

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

Y, cuando el servidor de destino utiliza un lenguaje débilmente tipado como PHP o RoR, entonces debe sufrir el nombre del parámetro con llaves [] para activar el idioma y devolver una matriz de valores en lugar de un único valor.

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

En caso de que todavía use foo=value1&foo=value2&foo=value3 , devolverá solo el primer valor.

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

Tenga en cuenta que cuando envía foo[]=value1&foo[]=value2&foo[]=value3 a un servlet de Java, aún puede obtenerlos, pero necesitaría usar el nombre exacto del parámetro, incluidos los paréntesis.

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

Sé que esta publicación es muy antigua, pero tengo que responder porque, aunque la respuesta de BalusC está marcada como correcta, no es del todo correcta.

Tienes que escribir la consulta agregando “[]” a foo de esta manera:

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