如何在Adobe Flex 3中的Http服务中发送数组
答案 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();