Envie um Array com um HTTP Get

Como posso enviar um Array com uma solicitação HTTP Get?

Estou usando o cliente GWT para enviar a solicitação.

Isso depende do que o servidor de destino aceita. Não há um padrão definitivo para isso. Veja também ao Wikipedia: Cadeia de consulta :

Embora não haja um padrão definitivo, a maioria dos frameworks da web permite que vários valores sejam associados a um único campo (por exemplo, field1=value1&field1=value2&field2=value3 ). [4] [5]

Geralmente, quando o servidor de destino usa uma linguagem de programação forte como o Java ( Servlet ), você pode simplesmente enviá-los como vários parâmetros com o mesmo nome. A API geralmente oferece um método dedicado para obter vários valores de parâmetros como uma matriz.

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

O request.getParameter("foo") também funcionará, mas retornará apenas o primeiro valor.

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

E, quando o servidor de destino usa uma linguagem fraca como PHP ou RoR, você precisa sufixar o nome do parâmetro com chaves [] para acionar o idioma para retornar uma matriz de valores em vez de um único valor.

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

Caso você ainda use foo=value1&foo=value2&foo=value3 , ele retornará apenas o primeiro valor.

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

Note que quando você envia foo[]=value1&foo[]=value2&foo[]=value3 para um Java Servlet, então você ainda pode obtê-los, mas você precisaria usar o nome exato do parâmetro incluindo as chaves.

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

Eu sei que este post é realmente antigo, mas eu tenho que responder porque, embora a resposta do BalusC esteja marcada como correta, não está completamente correta.

Você tem que escrever a consulta adicionando “[]” para foo assim:

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