Это зависит от того, что принимает целевой сервер. Нет определенного стандарта для этого. Смотрите также Википедия: Строка запроса :
Хотя нет определенного стандарта, большинство веб-платформ позволяют связывать несколько значений с одним полем (например, 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, вы все равно можете их получить, но вам нужно будет использовать точное имя параметра, включая фигурные скобки.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]