Эмулировать ответ сервера в ActionScript 3 - PullRequest
0 голосов
/ 18 июля 2011

У меня есть клиентское приложение, созданное на ActionScript 3. И сервер на Java. Сервер отправит ответы в формате JSON, но это еще не сделано. Итак, мне нужно как-то эмулировать жестко закодированные ответы от сервера в каком-то файле Чтобы получить ответы на некоторые ключи.

Например:

request: http://www.serverscript.com/GET_INFO?a=2&e="hello"

response: {some JSON object}

В iPhone у нас есть файлы pList, которые мы можем использовать.
Что я могу использовать здесь и как?

Ответы [ 3 ]

3 голосов
/ 18 июля 2011

Простое решение: Запустите сервер на своем компьютере:

http://www.apachefriends.org/en/xampp.html

Таким образом, вам не нужно ничего симулировать. Вы можете хранить свой код на стороне сервера и код на стороне клиента на одном компьютере, и рефакторинг не требуется, когда вы закончите, просто загрузите и все готово. Вы можете написать быстрый php-скрипт для вывода статического объекта json, и он будет имитировать соединение с вашим java-сервисом после его завершения.

2 голосов
/ 18 июля 2011

Вы можете загрузить из простого текстового файла, содержащего ваш фиктивный JSON:

var file:URLRequest = new URLRequest('dummy.txt');
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,onTextLoaded);
loader.load(file);

function onTextLoaded(evt:Event):void
{
    //trace the loaded content
    trace(URLLoader(evt.target).data);
    //decode the JSON
    var useableObject:Object = JSON.decode(URLLoader(evt.target).data);
}
1 голос
/ 18 июля 2011

Вы действительно хотите обернуть связь с сервером в его собственный класс, таким образом, вы можете рефакторинг серверного кода в него, когда он будет готов, например,

    public class ServerGateway extends EventDispatcher
    {
        public static const SERVER_RESPONSE_EVENT:String = "serverResponseEvent";
        public var responseData:String = "";

        public function getInfo():void 
        {
            //load you file here for now but replace with server calls when its done
            var url:String = "your file path";
            var myLoader:URLLoader = new URLLoader();           
            myLoader.addEventListener(Event.COMPLETE, handleServerGetInfo);
            var request:URLRequest = new URLRequest("file.txt");
            myLoader.load(request);         
        }

        private function handleServerGetInfo(event:Event):void 
        {
            // this will need replacing to handle server responses when done
            var myLoader:URLLoader = event.target as URLLoader;
            myLoader.removeEventListener(Event.COMPLETE, handleServerGetInfo);
            responseData = myLoader.data as String;

            dispatchEvent(new Event(SERVER_RESPONSE_EVENT));
        }

    }
...