java post - Отправить массив с HTTP Get




array angular (3)

Как я могу отправить массив с запросом HTTP Get?

Я использую клиент GWT для отправки запроса.


Answers

Я знаю, что этот пост действительно старый, но я должен ответить, потому что хотя ответ BalusC отмечен как правильный, это не совсем правильно.

Вы должны написать запрос, добавив «[]» в foo следующим образом:

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

Это зависит от того, что принимает целевой сервер. Для этого нет окончательного стандарта. См. Также ao Википедия: Строка запроса :

Хотя стандартного стандарта нет, большинство веб-фреймворков позволяют связать несколько значений с одним полем (например, 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]

Реализация forEach ( см. В jsFiddle ):

function forEach(list,callback) {
  var length = list.length;
  for (var n = 0; n < length; n++) {
    callback.call(list[n]);
  }
}

var myArray = ['hello','world'];

forEach(
  myArray,
  function(){
    alert(this); // do something
  }
);




java http gwt arrays