¿Cómo puedo enviar una matriz con una solicitud HTTP Get?Enviar una matriz con un HTTP Obtenga
Estoy usando el cliente GWT para enviar la solicitud.
¿Cómo puedo enviar una matriz con una solicitud HTTP Get?Enviar una matriz con un HTTP Obtenga
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 a.o. Wikipedia: Query string:
Aunque no existe una norma definitiva, la mayoría de los marcos de web permiten múltiples valores a estar asociados con un solo campo (por ejemplo
field1=value1&field1=value2&field2=value3
). [4][5]
En general, cuando el servidor de destino utiliza una fuerte mecanografiado lenguaje de programación como Java (Servlet), a continuación, puedes enviarlas como múltiples parámetros 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 trabajará en ella, sino que va a devolver sólo el primer valor.
String foo = request.getParameter("foo"); // value1
Y, cuando el servidor de destino utiliza una débil lenguaje mecanografiada como PHP o RoR, entonces usted necesita para el sufijo del nombre del parámetro con los apoyos []
con el fin de desencadenar el idioma para devolver una matriz de valores en lugar de un solo valor
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
En caso de que todavía utiliza foo=value1&foo=value2&foo=value3
, entonces va a devolver sólo el primer valor.
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
tenga en cuenta que cuando se envía foo[]=value1&foo[]=value2&foo[]=value3
a un servlet de Java, a continuación, puede seguir obteniendo ellos, pero que había necesidad de utilizar el nombre del parámetro exacto incluidas las llaves.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
Sé que este post es muy viejo, pero tengo que responder porque a pesar de la respuesta de BalusC está marcada como correcta, no es del todo correcta.
Tienes que escribir la consulta añadiendo "[]" a foo como esto:
foo[]=val1&foo[]=val2&foo[]=val3
alegra que respondió a este antiguo puesto! Definitivamente ayudó. –
Esta respuesta solo es correcta para usuarios de lenguajes de tipo débil como PHP porque el '[]' en realidad se está utilizando como una solución interna para poder obtener parámetros de múltiples valores. Mi respuesta ha sido actualizada para aclarar eso más. Entonces su declaración "no es completamente correcta" no es válida. La pregunta original era sobre Java, no sobre PHP. – BalusC