是否可以在Flex中执行轻量级REST调用?

Yuv*_*dam 2 apache-flex rest remoting actionscript-3

我们正在转换Flex应用程序以使用一些REST API.

mx.rpc.http.HTTPService类添加到代码时,SWF二进制输出从175KB增加到260KB.这是一个不可接受的打击.

有没有更好的方法从Flex应用程序执行轻量级REST调用?我们最好使用外部接口JS来从那里进行调用吗?

Ric*_*lay 6

flash.net.URLLoader内置于运行时,不会导致文件大小增加.我以前用它作为JSON客户端,所以你不应该有任何麻烦.

下面是一个非常简单的例子.为见文档HTTP_STATUSHTTP_RESPONSE_STATUS对他们的限制的信息.

var request: URLRequest = new URLRequest("http://tempuri.org/service/json");
request.method = "POST";
request.contentType = "application/json";
request.data = JSON.encode(jsonObject);

var loader : URLLoader = new URLLoader(request);

// Only supported by some browsers
loader.addEventHandler(HTTPStatusEvent.HTTP_STATUS, statusCodeReceived);

// AIR only
loader.addEventHandler(HTTPStatusEvent.HTTP_RESPONSE_STATUS, statusCodeReceived);

loader.addEventHandler(Event.COMPLETE, function(ev:Event):void
{
    var responseJson : String = request.data as String;

    var responseJsonObject : String = JSON.decode(responseJson);
});

loader.addEventHandler(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
loader.addEventHandler(IOErrorEvent.IO_ERROR, errorHandler);
Run Code Online (Sandbox Code Playgroud)