2 回答

TA貢獻1851條經驗 獲得超4個贊
這取決于目標服務器接受什么。沒有確定的標準。另請參見Wikipedia:查詢字符串:
盡管沒有明確的標準,但是大多數(shù)Web框架都允許將多個值與單個字段(例如field1=value1&field1=value2&field2=value3)相關聯(lián)。[4] [5]
通常,當目標服務器使用諸如Java(Servlet)之類的強類型編程語言時,您可以將它們作為具有相同名稱的多個參數(shù)發(fā)送。API通常提供一種專用方法來獲取多個參數(shù)值作為數(shù)組。
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)時,您需要在參數(shù)名稱后加上大括號[],以觸發(fā)該語言返回值數(shù)組而不是單個值。
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
請注意,當您發(fā)送foo[]=value1&foo[]=value2&foo[]=value3到Java Servlet時,仍然可以獲取它們,但是需要使用包括括號在內的確切參數(shù)名稱。
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]

TA貢獻1804條經驗 獲得超7個贊
我知道這篇文章確實很老,但是我必須回復,因為盡管BalusC的答案被標記為正確,但并不完全正確。
您必須編寫將foo加上“ []”的查詢,如下所示:
foo[]=val1&foo[]=val2&foo[]=val3
添加回答
舉報