2008-10-31 5 views

Répondre

7

Je ne suis pas tout à fait sûr de ce que vous entendez par l'envoi d'un tableau à une HTTPService. Si vous voulez envoyer un tableau à un httpservice avec le même nom de champ, vous pouvez passer un tableau comme valeur de champ.

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); 

Le HTTPService convertit cela aux paramètres url:

facet=true&q=stackoverflow&facet%2Efield=categories&facet%2Efield=organisation&rows=0

Hope this helps!

Ajouté pour plus de clarté. Quand il n'y a qu'un seul argument dans le tableau, ne passez pas les champs en tableau. Pour une raison quelconque, flex ne l'enverra pas au service http

0

s'il s'agit d'un simple tableau de chaînes, vous pouvez le join avec un caractère de séparation bien connu, et sur l'autre site, diviser la chaîne avec le même séparateur retour à un tableau.

2

Cela dépend vraiment de la technologie dorsale que vous utilisez. Si vous l'envoyez à PHP, vous pouvez essayer:

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 va générer un tableau pour vous. AFAIR fonctionne aussi bien dans Rails.

0

S'il s'agit d'un tableau simple, vous pouvez l'envoyer sous la forme d'une chaîne séparée par des virgules.

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

Questions connexes