Пакет | mx.rpc.http |
Класс | public class SerializationFilter |
Наследование | SerializationFilter Object |
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Экземпляр этого класса может управлять форматированием запросов, ответов HTTP и преобразованием их параметров. При использовании службы HTTPService или HTTPMultiService обычно осуществляется коммуникация с сервером, ожидающим предоставление данных в определенном формате – например закодированные значения URL для формы HTML, значения XML или другой формат сериализации, например JSON. SerializationFilter позволяет настроить способ преобразования параметров операции посредством служб HTTPService и HTTPMultiService в тело запроса HTTP и способ преобразования ответа в возвращаемое значение операции. Разработчики инфраструктуры могут вводить в систему новый формат сериализации через новую реализацию SerializationFilter и использовать эти компоненты и все инфраструктуры и инструментальные средства, построенные на этих компонентах, без знания подробной информации непосредственно о формате.
Во-первых, требуется расширить SerializationFilter и переопределить один или несколько методов преобразования. Фильтр позволяет превращать упорядоченный список параметров в тело запроса, изменять тело запроса, изменять используемый в запросе тип содержимого, изменять используемый в запросе фактический URL-адрес и преобразовывать данные ответа в объект результата, полученный в событии результата службы.
Существует два способа определения SerializationFilter для определенной службы HTTPService или HTTPMultiService. Можно определить свойство serializationFilter в службе или статически зарегистрировать SerializationFilter для нового формата результата. При использовании этого подхода через простое определение resultFormat можно использовать предварительно зарегистрированный SerializationFilter. Например, можно зарегистрировать SerializationFilter для типа json, а затем использовать этот фильтр определением resultFormat="json".
Обратите внимание, что служба HTTPService только предоставляет методы, которые непосредственно принимают тело запроса и поэтому не использует метод serializeParameters.
Метод | Определено | ||
---|---|---|---|
Этот метод принимает результат из запроса HTTP в необработанном формате. | SerializationFilter | ||
Этот метод вызывается службой HTTP непосредственно перед выполнением вызова. | SerializationFilter | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
[статические]
Эта статическая функция используется для регистрации нового SerializationFilter для определенного значения resultFormat. | SerializationFilter | ||
Этот метод запрашивается для всех вызовов службы HTTP. | SerializationFilter | ||
Этот метод вызывается из метода send службы HTTP для преобразования параметров в тело запроса. | SerializationFilter | ||
Этот метод используется при необходимости извлечения данных из объекта тела запроса и их кодировки в строку URL-адреса. | SerializationFilter | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
deserializeResult | () | метод |
public function deserializeResult(operation:AbstractOperation, result:Object):Object
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Этот метод принимает результат из запроса HTTP в необработанном формате. При необходимости он может преобразовать его в более типизованный объект ActionScript. Для увеличения степени обобщения класса SerializationFilter можно использовать свойства resultType или resultElementType предоставленного AbstractOperation, в результате код сможет динамически отслеживать входящий запрос по типу, сконфигурированному в ActionScript как тип возвращаемого значения.
Обратите также внимание, что AbstractOperation имеет карту «свойств», которую можно использовать для сохранения дополнительных свойств как части вызова службы в ActionScript с целью обработки десериализации определенного типа.
Параметры
operation:AbstractOperation — Вызываемый AbstractOperation.
| |
result:Object — необработанный результат в виде возвращаемого с сервера.
|
Object — преобразованный результат, который затем будет передан в событие результата для службы.
|
getRequestContentType | () | метод |
public function getRequestContentType(operation:AbstractOperation, obj:Object, contentType:String):String
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Этот метод вызывается службой HTTP непосредственно перед выполнением вызова. Его роль заключается в выборе используемого для этого запроса contentType. Для многих форматов сериализации предусмотрен один фиксированный тип содержимого, поэтому в этом случае он может быть просто возвращен. Так как служба HTTPService самостоятельно настраивается на определенный тип содержимого, это значение передается здесь и возвращается реализацией по умолчанию. Сериализованное тело запроса также предоставляется с параметром obj на случай, если тип содержимого будет зависеть от типа объекта, посылаемого на сервер.
Параметры
operation:AbstractOperation — Вызываемый AbstractionOperation.
| |
obj:Object — тело запроса HTTP, для которого выполняется сериализация
| |
contentType:String — настроенный для операции contentType
|
String — тип содержимого, используемого для этого запроса HTTP.
|
registerFilterForResultFormat | () | метод |
public static function registerFilterForResultFormat(resultFormat:String, filter:SerializationFilter):SerializationFilter
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Эта статическая функция используется для регистрации нового SerializationFilter для определенного значения resultFormat. Если метод выполняется один раз, при запуске можно указать только свойство resultFormat службы HTTPService или HTTPMultiService для использования этого фильтра сериализации с целью упрощения определения разработчиками формата.
Параметры
resultFormat:String — Пользовательское имя resultFormat связано с предоставляемым SerializationFilter.
| |
filter:SerializationFilter — Регистрируемый SerializationFilter.
|
SerializationFilter |
serializeBody | () | метод |
public function serializeBody(operation:AbstractOperation, obj:Object):Object
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Этот метод запрашивается для всех вызовов службы HTTP. Он может преобразовывать предоставляемый объект в форму, подходящую для помещения непосредственно в тело запроса HTTP. Реализация по умолчанию только возвращает переданный объект как тело без преобразований.
Параметры
operation:AbstractOperation — Вызываемый AbstractOperation
| |
obj:Object — является начальным телом запроса HTTP, возвращаемым значением serializeParameters или параметром метода sendBody или метода send службы HTTPService.
|
Object — потенциально преобразованное тело для использования в запросе.
|
serializeParameters | () | метод |
public function serializeParameters(operation:AbstractOperation, params:Array):Object
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Этот метод вызывается из метода send службы HTTP для преобразования параметров в тело запроса. Параметры исходного вызова метода send помещаются в массив параметров. Этот метод преобразовывает указанный набор параметров в один объект, используемый в качестве данных тела запроса HTTP. Реализация по умолчанию производит объект, в котором клавиши являются значениями из массива операции argumentNames, а значения являются значениями параметров. При использовании реализации по умолчанию следует определить такое же количество элементов argumentNames, как в массиве параметров.
Обратите внимание, что этот метод не используется при вызове операции HTTP с помощью метода sendBody, принимающего только один объект. В таком случае этот шаг пропускается и вызывается только метод serializeBody.
Параметры
operation:AbstractOperation — Вызываемый AbstractOperation.
| |
params:Array — список параметров, передаваемых в метод send
|
Object — тело, используемое в запросе HTTP
|
serializeURL | () | метод |
public function serializeURL(operation:AbstractOperation, obj:Object, url:String):String
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Этот метод используется при необходимости извлечения данных из объекта тела запроса и их кодировки в строку URL-адреса. При этом предоставляется входящий URL-адрес как сконфигурированный в операции или в службе. Эта реализация возвращает только входящий URL-адрес без преобразования.
Параметры
operation:AbstractOperation — Вызываемый AbstractOperation
| |
obj:Object — URL-адрес, определенный в службе или операции
| |
url:String |
String — потенциально изменяемый URL-адрес для использования в этом запросе.
|
Tue Jun 12 2018, 11:34 AM Z