3

如何在 Adob​​e Flex3 的 Httpservice 中发送数组

4

4 回答 4

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

希望这可以帮助!

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

于 2009-01-12T14:13:25.573 回答
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 中也可以正常工作。

于 2009-06-18T16:47:34.560 回答
0

如果它是一个简单的字符串数组,您可以使用众所周知的分隔符将其连接起来,然后在另一个站点上,将具有相同分隔符的字符串拆分回数组。

于 2009-01-15T16:34:51.340 回答
0

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

httpService.request = 新对象;
httpService.request.csv = array.toString();

于 2009-08-14T09:16:20.240 回答