3

Adobe 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=カテゴリ&facet%2Efield=組織&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 に答える