Получение прогресса в POST с использованием HTTPService в Flex/AS3

Я использую HTTPService с операцией POST для отправки закодированного файла Base64 (взятого из растровых данных в приложении), но я действительно мог бы получить некоторое представление о ходе операции POST (например, как FileReference.upload()) .

Я не думаю, что это возможно, но было бы здорово, если бы это было так (любыми способами я готов изменить свои настройки, чтобы получить это).


person DEfusion    schedule 18.12.2008    source источник


Ответы (3)


Не используйте HTTPService. Используйте URLRequest, URLLoader и URLVariables.

Если вы используете тег HTTPService, избавьтесь от него и замените его тегом Script, заполненным чем-то вроде...


private function forYou() : void{
     var req : URLRequest = new URLRequest("PUT YOUR URL HERE")
     var loader : URLLoader = new URLLoader();
     var params : URLVariables = new URLVariables();
     params.WHATEVER = WHATEVER YOU WANT IT TO BE;
     req.data = params;
     req.method = URLRequestMethod.POST;
     loader.addEventListener(ProgressEvent.PROGRESS, YOUR LISTENER FUNCTION NAME);
     loader.load(req);
}

Назначьте это имя функции атрибуту createComplete корневого тега.

Если вы не используете тег HTTPService, просто избавьтесь от объекта HTTPService в своем сценарии действий и используйте приведенный выше код.

person ForYourOwnGood    schedule 23.12.2008
comment
Это хороший ответ для загрузки информации, но вопрос касается загрузки. - person Ross Henderson; 16.06.2009

Это хорошо сработало для меня, чтобы использовать веб-службу REST:

http://code.google.com/p/as3httpclient/wiki/Links

Пример

person Brandon    schedule 31.12.2008

Это невозможно с HTTPService. Его единственными событиями являются result, fault и invoke (кроме нерелевантных унаследованных событий activate и deactivate).

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

Одним из вариантов может быть создание объекта на сервере, который будет создаваться всякий раз, когда сервер начнет получать данные POST от вашего клиента. Затем он будет отслеживать прогресс и предоставлять эти данные остальной части вашего серверного приложения. Затем ваш клиент может инициировать систему опроса, которая запросит значение этой конкретной переменной.

Хотя вариант какой-то надуманный...

person Ross Henderson    schedule 16.06.2009