如何使用Actionscript 3.0发布JSON数据?

问题描述 投票:0回答:3

我必须在 Actionscript 中使用 Web 服务。我发现以下代码允许我使用仅实现 GET 方法的 JSON URL。但是,它不适用于 POST 方法(甚至不输入“onComplete”方法)。我在网上搜索并找不到任何答案。如何使用 Actionscript 3.0“发布”JSON 数据?

package 
{
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;
import com.adobe.serialization.json.JSON; 

public class DataGrab extends Sprite {

    public function DataGrab() {

    }

    public function init(resource:String):void {
            var loader:URLLoader = new URLLoader();
            var request:URLRequest = new URLRequest(resource);
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.load(request);
    }       

    private function onComplete(e:Event):void {
            var loader:URLLoader = URLLoader(e.target);
            var jsonData:Object = JSON.decode(loader.data);
            for (var i:String in jsonData)
            {
                trace(i + ": " + jsonData[i]);
            }
    }
}
}
json actionscript-3
3个回答
4
投票

您需要指定 URLRequest 对象使用的方法。默认为 GET。这可能是您的

init
方法的第二个参数:

public function init(resource:String,method:String = "GET"):void {
    var loader:URLLoader = new URLLoader();
    var request:URLRequest = new URLRequest(resource);
    request.method = method;
    loader.addEventListener(Event.COMPLETE, onComplete);
    loader.load(request);
}

当您调用此函数时,您可以使用

URLRequestMethod
的静态
GET
POST 属性,而不仅仅是传递字符串以获得一点额外的安全性。


4
投票

我正在做

import com.adobe.serialization.json.JSON;

var messages:Array = new Array ();  
messages.push ({"nombreArchivo":"value"});
messages.push ({"image":"value"});  

var vars: URLVariables = new URLVariables();
vars.data   = JSON.encode(messages);

var req: URLRequest = new URLRequest();
req.method      = URLRequestMethod.POST;
req.data        = vars;
req.url         = "crearIMG.php"

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handleServerResponse);
loader.load(req);

0
投票

停止();

函数 getStageReference():void { stage = this; }

enterFrame.addEventListener(function(event:Event):void {

});

MyClass 类 { 构造函数(值:数字){ } }

© www.soinside.com 2019 - 2024. All rights reserved.