Как отправить массив через HTTPservice в Adobe Flex 3 - PullRequest
3 голосов
/ 31 октября 2008

Как отправить массив в Httpservice в Adobe Flex3

Ответы [ 4 ]

7 голосов
/ 12 января 2009

Я не совсем уверен, что вы имеете в виду, посылая массив в 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-сервис

2 голосов
/ 18 июня 2009

Это действительно зависит от того, какую серверную технологию вы используете. Если вы отправляете его в 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.

0 голосов
/ 14 августа 2009

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

httpService.request = new Object;
httpService.request.csv = array.toString ();

0 голосов
/ 15 января 2009

если это простой строковый массив, вы можете присоединить к нему с хорошо известным символом-разделителем, а на другом сайте разделить строку с тем же разделителем обратно на массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...