Come posso inviare una matrice con una richiesta Ottieni HTTP?Invia una matrice con un HTTP Ottieni
Sto utilizzando il client GWT per inviare la richiesta.
Come posso inviare una matrice con una richiesta Ottieni HTTP?Invia una matrice con un HTTP Ottieni
Sto utilizzando il client GWT per inviare la richiesta.
Dipende da ciò che il server di destinazione accetta. Non esiste uno standard definitivo per questo. Vedi anche a.o. Wikipedia: Query string:
Mentre non v'è alcuna norma definitiva, la maggior parte dei framework web consentono più valori da associare a un singolo campo (ad esempio
field1=value1&field1=value2&field2=value3
). [4][5]
In genere, quando il server di destinazione utilizza un forte tipizzato linguaggio di programmazione come Java (Servlet), allora si può semplicemente inviare loro come parametri multipli con lo stesso nome. L'API di solito offre un metodo dedicato per ottenere più valori di parametro come una matrice.
foo=value1&foo=value2&foo=value3
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3]
Il request.getParameter("foo")
sarà anche lavorare su di esso, ma tornerà solo il primo valore.
String foo = request.getParameter("foo"); // value1
E, quando il server di destinazione utilizza un debole lingua tipizzato come PHP o RoR, allora avete bisogno di suffisso il nome del parametro con bretelle []
al fine di innescare la lingua per restituire una matrice di valori, invece di un singolo valore
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
Nel caso in cui si utilizza ancora foo=value1&foo=value2&foo=value3
, allora tornerà solo il primo valore.
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
si noti che, quando si invia foo[]=value1&foo[]=value2&foo[]=value3
ad un Servlet Java, allora si può ancora li ottenere, ma avresti bisogno di utilizzare il nome esatto del parametro incluse le parentesi graffe.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
So che questo post è molto vecchio, ma devo rispondere perché, anche se la risposta di BalusC è contrassegnato come corretto, non è del tutto corretta.
Devi scrivere la query aggiungendo "[]" a foo come questo:
foo[]=val1&foo[]=val2&foo[]=val3
Sono contento che ha risposto a questo vecchio post! Ha sicuramente aiutato. –
Questa risposta è corretta solo per gli utenti di linguaggi tipizzati deboli come PHP perché il '[]' viene effettivamente utilizzato come un lavoro interno per poter ottenere parametri con valori multipli. La mia risposta è stata aggiornata per chiarire meglio. Quindi la tua affermazione "non è completamente corretta" non è valida. La domanda originale era su Java, non su PHP. – BalusC