Как разместить данные JSON с помощью Actionscript 3.0? - PullRequest
2 голосов
/ 13 декабря 2011

Мне нужно работать с веб-сервисами в Actionscript.Я нашел следующий код, который позволяет мне использовать URL-адреса JSON, которые реализуют только метод GET.Тем не менее, он не работает для методов POST (даже не вводит метод "onComplete").Я искал в сети и не смог найти ответы.Как я могу "POST" данные JSON, используя Actionscript 3.0?

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

Ответы [ 2 ]

4 голосов
/ 07 июня 2012

Я делаю это с

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);
4 голосов
/ 13 декабря 2011

Вам необходимо указать метод, используемый с вашим объектом 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);
}

Когда вы вызываете эту функцию, вы можете использовать статические GET и POST свойства URLRequestMethod вместо простой передачи строк для дополнительной безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...