如何通过Adobe Flex 3中的HTTPservice发送数组

时间:2008-10-31 09:02:17

标签: actionscript-3 http flex3 service

如何在Adobe Flex 3中的Http服务中发送数组

4 个答案:

答案 0 :(得分:7)

我不太确定你将数组发送到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

希望这有帮助!

添加更清晰。当数组中只有一个参数时,不要将字段作为数组传递。出于某种原因,flex不会将其发送到http服务

答案 1 :(得分:2)

这取决于您正在使用的后端技术。如果您将它发送到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。

答案 2 :(得分:0)

如果它是一个简单的字符串数组,你可以使用一个众所周知的分隔符char join,并在另一个站点上,将具有相同分隔符的字符串拆分回一个数组。

答案 3 :(得分:0)

如果它是一个简单的数组,您可以将其作为逗号分隔的字符串发送。

  

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