java - 使用HTTP Get發送數組




gwt arrays (2)

如何使用HTTP Get請求發送數組?

我正在使用GWT客戶端發送請求。


我知道這篇文章真的很老了,但我必須回复,因為儘管BalusC的回答被標記為正確,但這並不完全正確。

您必須編寫查詢,將“[]”添加到foo,如下所示:

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

這取決於目標服務器接受的內容。 沒有確定的標準。 另見ao Wikipedia:查詢字符串

雖然沒有明確的標準,但大多數Web框架允許多個值與單個字段相關聯(例如, field1=value1&field1=value2&field2=value3 )。 [4] [5]

通常,當目標服務器使用強類型編程語言(如Java( Servlet ))時,您可以將它們作為具有相同名稱的多個參數發送。 API通常提供一種專用方法來獲取多個參數值作為數組。

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)時,您需要使用大括號[]後綴參數名稱,以便觸發語言返回值數組而不是單個值。

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

請注意,當您將foo[]=value1&foo[]=value2&foo[]=value3發送到Java Servlet時,您仍然可以獲取它們,但是您需要使用包含大括號的確切參數名稱。

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




arrays