Как отправить массив в HTTPService в Adobe FLEX3Как отправить массив через HTTPService в Adobe Flex 3
ответ
Я не совсем уверен, что вы имеете в виду, посылая массив в HTTPService. Если вы хотите отправить массив в httpservice с тем же именем поля, вы можете передать массив как значение поля.
var service:HTTPService = new HTTPService();
service.useProxy = true;
service.destination = "myservicet";
service.resultFormat = HTTPService.RESULT_FORMAT_XML;
var fields:Array = ["categories", "organisation"];
var params:Object = new Object();
params.q = "stackoverflow";
params.rows = 0;
params.facet = "true";
params["facet.field"] = fields;
service.send(params);
HTTPService преобразует это в параметры URL:
facet=true&q=stackoverflow&facet%2Efield=categories&facet%2Efield=organisation&rows=0
Надеется, что это помогает!
Добавлено для большей ясности. Когда в массиве только 1 аргумент, не передавайте поля в виде массива. По какой-то причине flex не отправит это на http-службу
, если это простой строковый массив, вы можете join с хорошо известным разделителем char, а на другом сайте разделите строку на тот же разделитель назад к массиву.
Это действительно зависит от используемой технологии задней части. Если вы отправляете его на PHP, вы можете попробовать:
var fields:Array = ["categories", "organisation"];
var params:Object = {};
params.q = "stackoverflow";
params.rows = 0;
params.facet = "true";
params["facet.field[]"] = fields;
service.send(params);
PHP будет генерировать массив для вас. AFAIR это прекрасно работает в Rails.
Если это простой массив, вы можете отправить его как строку, разделенную запятой.
httpService.request = новый объект;
httpService.request.csv = array.toString();