mx.rpc.httpOperation Операция, используемая исключительно HTTPMultiService.mx.rpc.http:AbstractOperation Операция, используемая исключительно HTTPMultiService. Операция – это отдельная операция службы, обычно соответствующая одной операции на стороне сервера. Операция может быть активирована вызовом функции с таким же именем в службе, а также путем получения доступа к операции как к свойству в службе и вызовом метода send(param1, param2). Службы HTTP также поддерживают метод sendBody, позволяющий напрямую определять тело ответа HTTP. При использовании метода send(param1, param2) тело обычно формируется путем объединения свойства операции argumentNames с переданными параметрами. Создается объект, использующий argumentNames[i] в качестве ключа и соответствующий параметр в качестве значения.

Конкретный способ помещения аргументов операции HTTP в тело HTTP определяется используемым классом serializationFilter.

Operation Создает новую операцию.servicemx.rpc.http:HTTPMultiServicenullОбъект HTTPMultiService, определяющий службу. namenullИмя службы. Создает новую операцию. send Выполняет операцию HTTP.Вызов AsyncToken с использованием образца асинхронного маркера выполнения. Этот объект доступен в событиях result и fault свойства token. mx.rpc:AsyncTokenargsДополнительные аргументы, переданные как часть вызова метода. При отсутствии передаваемых аргументов в качестве источника параметров используется объект аргументов. Выполняет операцию HTTP. Любые передаваемые аргументы передаются как часть вызова операции. Если аргументы не передаются, в качестве источника параметров используется свойство arguments класса. Операции HTTP обычно принимают параметры с именем, а не параметры с позицией. Для ввода имен этих параметров в массиве имен свойств можно также установить свойство argumentNames. concurrency Значение, которое указывает способ обработки нескольких вызовов одной операции службы. Значение, которое указывает способ обработки нескольких вызовов одной операции службы. Значение по умолчанию: multiple. Допустимыми являются следующие значения:
  • multiple – существующие запросы не отменяются, и разработчик несет ответственность за обеспечение непротиворечивости возвращаемых данных путем тщательного управления потоком событий. Это значение является значением по умолчанию.
  • single – допускается только один запрос в операции в конкретный момент времени; многократные запросы вызывают сбой.
  • last – создание нового запроса отменяет любой существующий запрос.
contentType Тип содержимого для запросов служб. Тип содержимого для запросов служб. Значение по умолчанию – application/x-www-form-urlencoded, передающее запросы в режиме стандартной операции HTTP POST с парами «значение - имя». application/xml передает запросы в виде XML. makeObjectsBindable Если значение равно true, возвращенные анонимные объекты принудительно передаются объектам со свойством bindable. Если значение равно true, возвращенные анонимные объекты принудительно передаются объектам со свойством bindable. method Метод HTTP для передачи запроса. Метод HTTP для передачи запроса. Допустимыми являются значения: GET, POST, HEAD, OPTIONS, PUT, TRACE и DELETE. Буквы нижнего регистра преобразуются в буквы верхнего регистра. Значение по умолчанию: GET. resultFormat Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение этого основано на следующем:
  • возвращается XML или возвращаются пары «имя/значение».
  • Способ доступа к результатам; можно получить доступ к таким результатам, как объект, текст или XML.

Значение по умолчанию: object. Допустимыми являются следующие значения:

  • object – значение возвращается в виде XML и анализируется как дерево объектов ActionScript. Это значение по умолчанию.
  • array – значение возвращается в виде XML и анализируется как дерево объектов ActionScript, однако если объект верхнего уровня не является массивом, создается новый массив, и результат устанавливается в качестве первого элемента. Если makeObjectsBindable имеет значение true, то массив включается в ArrayCollection.
  • xml – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XMLnode.
  • flashvars – значение возвращается в виде текста, содержащего пары «имя = значение», разделенные амперсандами, и при анализе преобразуется в объект ActionScript.
  • text – значение возвращается в виде текста и остается необработанным.
  • e4x – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XML, к которому можно получить доступ с помощью ECMAScript для выражений XML (E4X).
rootURL rootURL используется для определения URL-адреса для операции службы HTTP, если для операции указан относительный URL-адрес. rootURL используется для определения URL-адреса для операции службы HTTP, если для операции указан относительный URL-адрес. Любому относительному URL-адресу операции предшествует имя каталога rootURL. Обычно рекомендуется определять baseURL, так как baseURL указывает имя каталога напрямую, а rootURL указывает имя файла, имя каталога которого стоит в начале. Если не указан ни точный rootURL, ни baseURL, в относительном пути указывается сначала имя каталога для файла .swf. showBusyCursor Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Значение по умолчанию false. useProxy Указывает, требуется ли использовать службу прокси Flex. Указывает, требуется ли использовать службу прокси Flex. Значение по умолчанию false. Если для запросов прокси через сервер Flex не указано значение true, необходимо обеспечить возможность достижения целевого URL-адреса для Flash Player. Также невозможно использовать адреса назначения, определенные в файле services-config.xml, если для свойства useProxy установлено значение false.
HTTPService Использование класса HTTPService для представления объекта HTTPService в ActionScript.mx.rpc:AbstractInvoker Использование класса HTTPService для представления объекта HTTPService в ActionScript. При вызове метода send() объекта HTTPService выполняется запрос HTTP на указанный URL, и возвращается ответ HTTP. Дополнительно на указанный URL-адрес можно передать параметры. Если не применяется служба прокси на базе сервера, можно использовать только методы HTTP GET или POST. Однако если при использовании службы прокси на базе сервера для свойства useProxy установлено значение true, можно также использовать методы HTTP HEAD, OPTIONS, TRACE и DELETE.

Примечание. Вследствие программного ограничения при использовании метода GET служба HTTPService не генерирует понятных пользователю сообщений об ошибках.

mx.rpc.http.mxml.HTTPServiceinvoke Событие вызова запускается при вызове службы HTTPService и длится до выдачи ошибки перед попыткой канала передать сообщение.mx.rpc.events.InvokeEvent.INVOKEmx.rpc.events.InvokeEvent Событие вызова запускается при вызове службы HTTPService и длится до выдачи ошибки перед попыткой канала передать сообщение. fault Отправляется в случае сбоя вызова службы HTTPService.mx.rpc.events.FaultEvent.FAULTmx.rpc.events.FaultEvent Отправляется в случае сбоя вызова службы HTTPService. result Отправляется в случае успешного возврата вызова службы HTTPService.mx.rpc.events.ResultEvent.RESULTmx.rpc.events.ResultEvent Отправляется в случае успешного возврата вызова службы HTTPService. HTTPService Создает новую службу HTTPService.rootURLnullURL-адрес, используемый HTTPService при вычислении относительных URL. destinationnullИмя адреса назначения HTTPService в файле service-config.xml. Создает новую службу HTTPService. Если ожидается передача службой с использованием относительных URL-адресов, может потребоваться указание rootURL, на основе которого будет определяться полный URL-адрес (например, Application.application.url). cancel Отменяет последний вызов службы или вызов с указанным идентификатором.AsyncToken, связанный с вызовом, который был отменен или является нулевым (если отмена вызовов не выполнялась). mx.rpc:AsyncTokenidnullЗначение messageId для вызова, который требуется отменить. Дополнительно. Если этот параметр не используется, последний вызов службы будет отменен. Отменяет последний вызов службы или вызов с указанным идентификатором. Даже в том случае, если возможность выполнения сетевой операции сохраняется, события результата или ошибки не передаются. clearResult Устанавливает для свойства result объекта вызова значение null.fireBindingEventtrueЕсли требуется выполнить какую-либо привязку к результату для обновления, устанавливается значение true. В противном случае устанавливается значение false. Значением по умолчанию является true Устанавливает для свойства result объекта вызова значение null. Рекомендуется использовать в случае, если результат является крупным объектом, который больше не используется. disconnect Отключает сетевое подключение службы. Отключает сетевое подключение службы. Этот метод не ожидает завершения сетевых операций в очереди. logout Регистрирует пользователя за пределами адреса назначения. Регистрирует пользователя за пределами адреса назначения. Выход из адреса назначения применяется в отношении всех компонентов подключенных с использованием одного, указанного в конфигурации сервера канала. Например, при подключении по каналу my-rtmp и выходе из системы с помощью одного из компонентов RPC, выполняется выход из системы всех подключенных компонентов my-rtmp.

Примечание. Adobe рекомендует вместо этого метода использовать метод mx.messaging.ChannelSet.logout().

mx.messaging.ChannelSet.logout()
send Выполняет запрос службы HTTPService.Объект, представляющий маркер асинхронного завершения. Этот же объект доступен в свойстве result или fault события token. mx.rpc:AsyncTokenparametersnullObject, содержащий пары «значение - имя», или объект XML в зависимости от типа содержимого для запросов служб. Выполняет запрос службы HTTPService. Эти параметры являются необязательными, но если они указаны, то должны быть объектом, содержащим пары «значение - имя», или объектом XML в зависимости от свойства contentType. setCredentials Устанавливает учетные данные для адреса назначения, используемого службой.usernameимя пользователя для адреса назначения. passwordпароль для адреса назначения. charsetnullКодировка набора символов для использования при кодировании учетных данных. По умолчанию имеет нулевое значение, при котором используется унаследованный набор символов ISO-Latin-1. Помимо этого поддерживается только набор символов UTF-8. Устанавливает учетные данные для адреса назначения, используемого службой. Учетные данные применяются ко всем службам, подключенным по одному ChannelSet. Обратите внимание, что службы, использующие прокси для удаленного адреса назначения, должны будут вместо этого выполнить вызов метода setRemoteCredentials(). setRemoteCredentials Имя пользователя и пароль для аутентификации пользователя при переходе по URL-адресу HTTP.remoteUsernameимя пользователя для передачи в удаленную конечную точку. remotePasswordпароль для передачи в удаленную конечную точку. charsetnullКодировка набора символов для использования при кодировании учетных данных в удаленной службе. По умолчанию имеет нулевое значение, при котором используется унаследованный набор символов ISO-Latin-1. Помимо этого поддерживается только набор символов UTF-8. Имя пользователя и пароль для аутентификации пользователя при переходе по URL-адресу HTTP. Они передаются как часть заголовка авторизации HTTP от прокси в конечную точку. Если свойство useProxy имеет значение false, это свойство игнорируется. CONTENT_TYPE_FORM Указывает на то, что передаваемые службой HTTP данные кодируются в application/x-www-form-urlencoded.application/x-www-form-urlencoded Указывает на то, что передаваемые службой HTTP данные кодируются в application/x-www-form-urlencoded. CONTENT_TYPE_XML Указывает на то, что передаваемые службой HTTP данные кодируются в application/xml.application/xml Указывает на то, что передаваемые службой HTTP данные кодируются в application/xml. DEFAULT_DESTINATION_HTTPS Определяет использование объектом службы HTTPService адреса назначения DefaultHTTPS.DefaultHTTPS Определяет использование объектом службы HTTPService адреса назначения DefaultHTTPS. DEFAULT_DESTINATION_HTTP Определяет использование объектом службы HTTPService адреса назначения DefaultHTTP.DefaultHTTP Определяет использование объектом службы HTTPService адреса назначения DefaultHTTP. ERROR_DECODING Указывает на то, что отформатированный результат XML не может быть переведен в XML-экземпляр или декодирован в объект.Client.CouldNotDecode Указывает на то, что отформатированный результат XML не может быть переведен в XML-экземпляр или декодирован в объект. ERROR_ENCODING Указывает на то, что вводимый параметр не мог быть кодирован в XML.Client.CouldNotEncode Указывает на то, что вводимый параметр не мог быть кодирован в XML. ERROR_URL_REQUIRED Указывает на то, что свойство useProxy имеет значение false, но URL-адрес не был введен.Client.URLRequired Указывает на то, что свойство useProxy имеет значение false, но URL-адрес не был введен. RESULT_FORMAT_ARRAY «Массив» форматов результата схож с «объектом», однако возвращаемое значение всегда определяется следующим образом: если результат, возвращаемый от «объекта» форматов результата, еще не является массивом, этот элемент будет первым элементом нового массива.array «Массив» форматов результата схож с «объектом», однако возвращаемое значение всегда определяется следующим образом: если результат, возвращаемый от «объекта» форматов результата, еще не является массивом, этот элемент будет первым элементом нового массива. RESULT_FORMAT_E4X Формат результата e4x указывает на то, что возвращенное значение является XML-экземпляром, к которому можно перейти с помощью ECMAScript для выражений XML (E4X).e4x Формат результата e4x указывает на то, что возвращенное значение является XML-экземпляром, к которому можно перейти с помощью ECMAScript для выражений XML (E4X). RESULT_FORMAT_FLASHVARS Формат результата flashvars указывает на то, что возвращенное значение является текстом, содержащим пары «имя = значение» через амперсенды, и при анализе становится объектом ActionScript.flashvars Формат результата flashvars указывает на то, что возвращенное значение является текстом, содержащим пары «имя = значение» через амперсенды, и при анализе становится объектом ActionScript. RESULT_FORMAT_OBJECT Формат результата object указывает на то, что возвращаемое значение является XML, но анализируется как дерево объектов ActionScript.object Формат результата object указывает на то, что возвращаемое значение является XML, но анализируется как дерево объектов ActionScript. Это значение по умолчанию. RESULT_FORMAT_TEXT Формат результата text указывает на то, что текст результата HTTPService должен быть необработанной строкой.text Формат результата text указывает на то, что текст результата HTTPService должен быть необработанной строкой. RESULT_FORMAT_XML Формат результата xml указывает на то, что результат должен возвращаться в виде экземпляра flash.xml.XMLNode с указанием на первый нижестоящий документ по отношению к вышестоящему flash.xml.XMLDocument.xml Формат результата xml указывает на то, что результат должен возвращаться в виде экземпляра flash.xml.XMLNode с указанием на первый нижестоящий документ по отношению к вышестоящему flash.xml.XMLDocument. channelSet Предоставляет доступ к ChannelSet, используемому данной службой.mx.messaging:ChannelSet Предоставляет доступ к ChannelSet, используемому данной службой. ChannelSet может быть создан и присвоен вручную или динамически – для использования настроенных каналов со значением destination этой службы. concurrency Значение, которое указывает способ обработки нескольких вызовов одной службы. Значение, которое указывает способ обработки нескольких вызовов одной службы. Значение по умолчанию: multiple. Допустимыми являются следующие значения:
  • multiple – существующие запросы не отменяются, и разработчик несет ответственность за обеспечение непротиворечивости возвращаемых данных путем тщательного управления потоком событий. Это значение является значением по умолчанию.
  • single – допускается только один запрос в операции в конкретный момент времени; многократные запросы вызывают сбой.
  • last – создание нового запроса отменяет любой существующий запрос.
contentType Тип содержимого для запросов служб. Тип содержимого для запросов служб. Значение по умолчанию – application/x-www-form-urlencoded, передающее запросы в режиме стандартной операции HTTP POST с парами «значение - имя». application/xml передает запросы в виде XML. destination Имя адреса назначения HTTPService в файле services-config.xml. Имя адреса назначения HTTPService в файле services-config.xml. Если оно не указано, Flex использует адрес назначения DefaultHTTP. Если используется свойство url, но запросы должны достигать прокси по HTTPS, укажите DefaultHTTPS. headers Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны. Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны. Если требуется передать несколько заголовков с одним именем, необходимо указать значение как массив. lastResult Результат последнего вызова. Результат последнего вызова. makeObjectsBindable Если значение равно true, возвращенные анонимные объекты принудительно передаются объектам со свойством bindable. Если значение равно true, возвращенные анонимные объекты принудительно передаются объектам со свойством bindable. method Метод HTTP для передачи запроса. Метод HTTP для передачи запроса. Допустимыми являются значения: GET, POST, HEAD, OPTIONS, PUT, TRACE и DELETE. Буквы нижнего регистра преобразуются в буквы верхнего регистра. Значение по умолчанию: GET. requestTimeout Предоставляет доступ к тайм-ауту запроса в секундах для переданных сообщений. Предоставляет доступ к тайм-ауту запроса в секундах для переданных сообщений. Если значение меньше или равно нулю, тайм-аут запроса не применяется. request Объект пар «значение - имя», используемых в качестве параметров URL-адреса. Объект пар «значение - имя», используемых в качестве параметров URL-адреса. Если свойство contentType определено как application/xml, это документ XML. resultFormat Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение этого основано на следующем:
  • возвращается XML или возвращаются пары «имя/значение».
  • Способ доступа к результатам; можно получить доступ к таким результатам, как объект, текст или XML.

Значение по умолчанию: object. Допустимыми являются следующие значения:

  • object – значение возвращается в виде XML и анализируется как дерево объектов ActionScript. Это значение по умолчанию.
  • array – значение возвращается в виде XML и анализируется как дерево объектов ActionScript, однако если объект верхнего уровня не является массивом, создается новый массив, и результат устанавливается в качестве первого элемента. Если makeObjectsBindable имеет значение true, то массив включается в ArrayCollection.
  • xml – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XMLnode.
  • flashvars – значение возвращается в виде текста, содержащего пары «имя = значение», разделенные амперсандами, и при анализе преобразуется в объект ActionScript.
  • text – значение возвращается в виде текста и остается необработанным.
  • e4x – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XML, к которому можно получить доступ с помощью ECMAScript для выражений XML (E4X).
rootURL URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. Это свойство используется только при передаче через прокси. Если свойство useProxy определено как false, относительный URL-адрес вычисляется автоматически по местоположению SWF, запускающего это приложение. Если значение rootURL не установлено явно, в качестве этого значения автоматически используется URL mx.messaging.config.LoaderConfig.url. serializationFilter Обеспечивает адаптер, управляющий процессом преобразования тела ответа HTTP в объекты ActionScript и/или преобразования параметров или тела в contentType, URL-адрес и тело оператора POST запроса HTTP.mx.rpc.http:SerializationFilter Обеспечивает адаптер, управляющий процессом преобразования тела ответа HTTP в объекты ActionScript и/или преобразования параметров или тела в contentType, URL-адрес и тело оператора POST запроса HTTP. Также может быть определен косвенно указанием resultFormat через регистрацию SerializationFilter с помощью статического метода: SerializationFilter.registerFilterForResultFormat ("formatName", filter) showBusyCursor Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Значение по умолчанию false. url Местоположение службы. Местоположение службы. Если указан url и адрес назначения, отличный от адреса назначения по умолчанию, адрес назначения в файле services-config.xml должен допускать указанный URL-адрес. useProxy Указывает, требуется ли использовать службу прокси Flex.false Указывает, требуется ли использовать службу прокси Flex. Значение по умолчанию false. Если для запросов прокси через сервер Flex не указано значение true, необходимо обеспечить возможность достижения целевого URL-адреса для Flash Player. Также невозможно использовать адреса назначения, определенные в файле services-config.xml, если для свойства useProxy установлено значение false. xmlDecode Функция ActionScript, используемая для декодирования результата службы из XML. Функция ActionScript, используемая для декодирования результата службы из XML. Если resultFormat является объектом и определено свойство xmlDecode, Flex использует XML, возвращаемый службой HTTP для создания объекта. Если свойство не определено, по умолчанию для выполнения работы используется XMLDecoder.

Функция, вызванная свойством xmlDecode, должна принять в качестве параметра объект flash.xml.XMLNode и возвратить объект. Она обязательно возвращает любой тип объекта. Возврат значения null или undefined является причиной сбоя.

В следующем примере показан тег <mx:HTTPService>, определяющий функцию xmlDecode:
   <mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml">
        <mx:request><source/>
            <obj>{RequestObject}</obj>
        </mx:request>
   </mx:HTTPService>
В следующем примере показана функция xmlDecoder:
function xmlDecoder (myXML)
{
 // Simplified decoding logic.
 var myObj = {};
 myObj.name = myXML.firstChild.nodeValue;
 myObj.honorific = myXML.firstChild.attributes.honorific;
 return myObj;
}
xmlEncode Функция ActionScript используется для кодирования запроса службы в XML. Функция ActionScript используется для кодирования запроса службы в XML. Если contentType запроса определено как application/xml, а переданный объект запроса является объектом, Flex попытается использовать функцию, указанную в свойстве xmlEncode, для его преобразования в объект flash.xml.XMLNode. Если свойство xmlEncode не определено, для преобразования графика объекта в объект flash.xml.XMLNode Flex использует XMLEncoder по умолчанию.

Свойство xmlEncode принимает объект и должно возвратить объект flash.xml.XMLNode. В этом случае объект XMLNode может быть объектом flash.xml.XML, который является подклассом XMLNode или первым нижестоящим элементом объекта flash.xml.XML, получаемым из тега <mx:XML>. Возврат неверного типа объекта является причиной сбоя. В следующем примере показан тег <mx:HTTPService>, определяющий функцию xmlEncode:

  <mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml">
        <mx:request><source/>
            <obj>{RequestObject}</obj>
        </mx:request>
   </mx:HTTPService>
    
В следующем примере показана функция xmlEncoder:
function xmlEncoder (myObj)
{
  return new XML("MyObj.test
  MyObj.anotherTest");
}
AbstractOperation Операция используется в частности службой HTTPService или HTTPMultiService.mx.rpc:AbstractOperation Операция используется в частности службой HTTPService или HTTPMultiService. Операция – это отдельная операция службы, обычно соответствующая одной операции на стороне сервера. Операция может быть активирована вызовом функции с таким же именем в службе, а также путем получения доступа к операции как к свойству в службе и вызовом метода send(param1, param2). Службы HTTP также поддерживают метод sendBody, позволяющий напрямую определять тело ответа HTTP. При использовании метода send(param1, param2) тело обычно формируется путем объединения свойства операции argumentNames с переданными параметрами. Создается объект, использующий argumentNames[i] в качестве ключа и соответствующий параметр в качестве значения.

Конкретный способ помещения аргументов операции HTTP в тело HTTP определяется используемым классом serializationFilter.

AbstractOperation Создает новую операцию.servicemx.rpc:AbstractServicenullОбъект, определяющий тип службы, например HTTPMultiService, WebService или RemoteObject. namenullИмя службы. Создает новую операцию. getHeaders Возвращает заголовки запроса HTTP.Заголовки запроса HTTP. Возвращает заголовки запроса HTTP. Подклассы могут переопределить этот метод для управления поиском заголовков запроса HTTP. getSerializationFilter Возвращает фильтр сериализации.Фильтр сериализации. mx.rpc.http:SerializationFilter Возвращает фильтр сериализации. Подклассы могут переопределить этот метод для управления поиском заголовков запроса HTTP. sendBodymx.rpc:AsyncTokenparametersargumentNames Упорядоченный список имен аргументов для передачи в вызов метода. Упорядоченный список имен аргументов для передачи в вызов метода. Поскольку объект аргументов представляет собой карту хеширования без гарантированной очередности, этот массив позволяет все корректно скомпилировать. Он устанавливается автоматически MXML-компилятором в случае использования операции в форме тега. headers Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны.unknown Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны. Если требуется передать несколько заголовков с одним именем, необходимо указать значение как массив. request Объект пар «значение - имя», используемых в качестве параметров URL-адреса.unknown Объект пар «значение - имя», используемых в качестве параметров URL-адреса. Если свойство contentType определено как application/xml, это документ XML. serializationFilter SerializationFilter может управлять форматированием аргументов для формирования содержимого запроса HTTP.mx.rpc.http:SerializationFilter SerializationFilter может управлять форматированием аргументов для формирования содержимого запроса HTTP. При этом также контролируется способ преобразования результатов в объекты ActionScript. Это можно настроить прямым использованием этого свойства или косвенным использованием свойства resultFormat. xmlDecode Функция ActionScript, используемая для декодирования результата службы из XML. Функция ActionScript, используемая для декодирования результата службы из XML. Если resultFormat является объектом и определено свойство xmlDecode, Flex использует XML, возвращаемый службой HTTP для создания объекта. Если свойство не определено, по умолчанию для выполнения работы используется XMLDecoder.

Функция, вызванная свойством xmlDecode, должна принять в качестве параметра объект flash.xml.XMLNode и возвратить объект. Она обязательно возвращает любой тип объекта. Возврат значения null или undefined является причиной сбоя.

В следующем примере показан тег <mx:HTTPService>, определяющий функцию xmlDecode:
   <mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml">
        <mx:request><source/>
            <obj>{RequestObject}</obj>
        </mx:request>
   </mx:HTTPService>
В следующем примере показана функция xmlDecoder:
function xmlDecoder (myXML)
{
 // Simplified decoding logic.
 var myObj = {};
 myObj.name = myXML.firstChild.nodeValue;
 myObj.honorific = myXML.firstChild.attributes.honorific;
 return myObj;
}
xmlEncode Функция ActionScript используется для кодирования запроса службы в XML. Функция ActionScript используется для кодирования запроса службы в XML. Если contentType запроса определено как application/xml, а переданный объект запроса является объектом, Flex попытается использовать функцию, указанную в свойстве xmlEncode, для его преобразования в объект flash.xml.XMLNode. Если свойство xmlEncode не определено, для преобразования графика объекта в объект flash.xml.XMLNode Flex использует XMLEncoder по умолчанию.

Свойство xmlEncode принимает объект и должно возвратить объект flash.xml.XMLNode. В этом случае объект XMLNode может быть объектом flash.xml.XML, который является подклассом XMLNode или первым нижестоящим элементом объекта flash.xml.XML, получаемым из тега <mx:XML>. Возврат неверного типа объекта является причиной сбоя. В следующем примере показан тег <mx:HTTPService>, определяющий функцию xmlEncode:

  <mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml">
        <mx:request><source/>
            <obj>{RequestObject}</obj>
        </mx:request>
   </mx:HTTPService>
    
В следующем примере показана функция xmlEncoder:
function xmlEncoder (myObj)
{
  return new XML("MyObj.test
  MyObj.anotherTest");
}
concurrency Значение, которое указывает способ обработки нескольких вызовов одной службы. Значение, которое указывает способ обработки нескольких вызовов одной службы. Значение по умолчанию: multiple. Допустимыми являются следующие значения:
  • multiple – существующие запросы не отменяются, и разработчик несет ответственность за обеспечение непротиворечивости возвращаемых данных путем тщательного управления потоком событий. Это значение является значением по умолчанию.
  • single – допускается только один запрос в операции в конкретный момент времени; многократные запросы вызывают сбой.
  • last – создание нового запроса отменяет любой существующий запрос.
contentType Тип содержимого для запросов служб. Тип содержимого для запросов служб. Значение по умолчанию – application/x-www-form-urlencoded, передающее запросы в режиме стандартной операции HTTP POST с парами «значение - имя». application/xml передает запросы в виде XML. method Метод HTTP для передачи запроса. Метод HTTP для передачи запроса. Допустимыми являются значения: GET, POST, HEAD, OPTIONS, PUT, TRACE и DELETE. Буквы нижнего регистра преобразуются в буквы верхнего регистра. Значение по умолчанию: GET. requestTimeout Предоставляет доступ к тайм-ауту запроса в секундах для переданных сообщений. Предоставляет доступ к тайм-ауту запроса в секундах для переданных сообщений. Если подтверждение, ответ или ошибка не получены от удаленного адресата по истечении тайм-аута, то сообщение привело к ошибке на клиенте. Если значение меньше или равно нулю, тайм-аут запроса не применяется. resultFormat Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение этого основано на следующем:
  • возвращается XML или возвращаются пары «имя/значение».
  • Способ доступа к результатам; можно получить доступ к таким результатам, как объект, текст или XML.

Значение по умолчанию: object. Допустимыми являются следующие значения:

  • object – значение возвращается в виде XML и анализируется как дерево объектов ActionScript. Это значение по умолчанию.
  • array – значение возвращается в виде XML и анализируется как дерево объектов ActionScript, однако если объект верхнего уровня не является массивом, создается новый массив, и результат устанавливается в качестве первого элемента. Если makeObjectsBindable имеет значение true, то массив включается в ArrayCollection.
  • xml – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XMLnode.
  • flashvars – значение возвращается в виде текста, содержащего пары «имя = значение», разделенные амперсандами, и при анализе преобразуется в объект ActionScript.
  • text – значение возвращается в виде текста и остается необработанным.
  • e4x – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XML, к которому можно получить доступ с помощью ECMAScript для выражений XML (E4X).
rootURL URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. Это свойство используется только при передаче через прокси. Если свойство useProxy определено как false, относительный URL-адрес вычисляется автоматически по местоположению SWF, запускающего это приложение. Если значение rootURL не установлено явно, в качестве этого значения автоматически используется URL mx.messaging.config.LoaderConfig.url. showBusyCursor Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Значение по умолчанию false. url Местоположение службы. Местоположение службы. Если указан url и адрес назначения, отличный от адреса назначения по умолчанию, адрес назначения в файле services-config.xml должен допускать указанный URL-адрес. useProxy Указывает, требуется ли использовать службу прокси Flex.false Указывает, требуется ли использовать службу прокси Flex. Значение по умолчанию false. Если для запросов прокси через сервер Flex не указано значение true, необходимо обеспечить возможность достижения целевого URL-адреса для Flash Player. Также невозможно использовать адреса назначения, определенные в файле services-config.xml, если для свойства useProxy установлено значение false.
HTTPMultiService Тег &lt;mx:HTTPMultiService&gt; используется для представления коллекции операций http.mx.rpc:AbstractService Тег <mx:HTTPMultiService> используется для представления коллекции операций http. Каждый имеет URL-адрес, метод, параметры и тип возвращаемого значения.

Можно установить такие атрибуты, как URL-адрес и метод в теге HTTPMultiService, для использования в качестве значений по умолчанию, установленных в каждом отдельном теге операции. URL-адрес HTTPMultiService служит базовым URL-адресом (т.е. префиксом) для любых относительных URL-адресов, установленных в тегах операций HTTP. Каждая операция http имеет метод send() для выполнения запроса HTTP по указанному URL-адресу и возврата ответа HTTP.

Можно передать параметры по указанному URL-адресу, используемому для помещения данных в запрос HTTP. Свойство contentType указывает mimeType, используемый для определения формата передаваемых данных (например, кодировка формы HTTP или XML).

Для реализации пользовательского формата resultFormat, например JSON, можно также использовать фильтр сериализации. Если не применяется служба прокси на базе сервера, можно использовать только методы HTTP GET или POST. Однако если при использовании службы прокси на базе сервера для свойства useProxy было установлено значение true, можно также использовать методы HTTP HEAD, OPTIONS, TRACE и DELETE.

Примечание. В отличие от класса HTTPService, класс HTTPMultiService не определяет свойство request.

Примечание. Из-за ограничений, связанных с программным обеспечением, служба HTTPService, HTTPMultiService не создает понятные пользователю сообщения об ошибках при использовании метода GET, а не прокси.

mx.rpc.http.HTTPServiceinvoke Событие вызова запускается при получении вызова HTTPMultiService и длится до передачи ошибки перед попыткой канала передать сообщение.mx.rpc.events.InvokeEvent.INVOKEmx.rpc.events.InvokeEvent Событие вызова запускается при получении вызова HTTPMultiService и длится до передачи ошибки перед попыткой канала передать сообщение. fault Отправляется при сбое вызова HTTPMultiService.mx.rpc.events.FaultEvent.FAULTmx.rpc.events.FaultEvent Отправляется при сбое вызова HTTPMultiService. result Отправляется при получении значений возврата от вызова HTTPMultiService.mx.rpc.events.ResultEvent.RESULTmx.rpc.events.ResultEvent Отправляется при получении значений возврата от вызова HTTPMultiService. HTTPMultiService Создает новую службу HTTPService.baseURLnullURL-адрес, используемый HTTPService при вычислении относительных URL. destinationnull Создает новую службу HTTPService. Если служба должна выполнять передачу с помощью относительных URL-адресов, возможно, потребуется указать baseURL, на основе которого будет определяться полный URL-адрес (например, Application.application.url). baseURL URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. URL-адрес, который должен использоваться объектом службы при вычислении относительных URL-адресов. В нем содержится префикс, указываемый перед любым URL-адресом при его определении. По умолчанию он имеет значение null, при этом для вычисления относительных URL-адресов используется SWF. contentType Тип содержимого для запросов служб.application/x-www-form-urlencoded Тип содержимого для запросов служб. Значение по умолчанию – application/x-www-form-urlencoded, передающее запросы в режиме стандартной операции HTTP POST с парами «значение - имя». application/xml передает запросы в виде XML. headers Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны.unknown Пользовательские заголовки HTTP, передаваемые в конечную точку третьей стороны. Если требуется передать несколько заголовков с одним именем, необходимо указать значение как массив. Эти заголовки передаются всем операциям. Заголовки можно также определять на уровне операций. makeObjectsBindable Если значение true, возвращаемые объекты поддерживают привязку к элементам управления пользовательского интерфейса.true Если значение true, возвращаемые объекты поддерживают привязку к элементам управления пользовательского интерфейса. Это означает, что они отправляют PropertyChangeEvents, когда их значения свойств изменяются. Это значение является значением по умолчанию для любых операций, свойство makeObjectsBindable которых не определено явным образом. method Метод HTTP для передачи запроса, если метод не определен в операции явным образом.GET Метод HTTP для передачи запроса, если метод не определен в операции явным образом. Допустимыми являются значения: GET, POST, HEAD, OPTIONS, PUT, TRACE и DELETE. Буквы нижнего регистра преобразуются в буквы верхнего регистра. Значение по умолчанию: GET. serializationFilter По умолчанию всеми операциями, для которых значение не определено явным образом, используется serializationFilter. mx.rpc.http:SerializationFilter По умолчанию всеми операциями, для которых значение не определено явным образом, используется serializationFilter. concurrency Значение, которое указывает способ обработки нескольких вызовов одной операции в службе. Значение, которое указывает способ обработки нескольких вызовов одной операции в службе. Применяемая в данном случае установка параллельной обработки будет использоваться для операций, не указывающих параллельную обработку. Индивидуальные операции с непосредственно заданной установкой параллельной обработки будут игнорировать установленное здесь значение. Значение по умолчанию: multiple. Допустимыми являются следующие значения:
  • multiple – существующие запросы не отменяются, и разработчик несет ответственность за обеспечение непротиворечивости возвращаемых данных путем тщательного управления потоком событий. Это значение является значением по умолчанию.
  • single – допускается только один запрос в операции в конкретный момент времени; многократные запросы вызывают сбой.
  • last – создание нового запроса отменяет любой существующий запрос.
operationList Служит свойством по умолчанию для этого экземпляра, поэтому набор операций можно определить как непосредственные нижестоящие элементы тега HTTPMultiService в MXML. Служит свойством по умолчанию для этого экземпляра, поэтому набор операций можно определить как непосредственные нижестоящие элементы тега HTTPMultiService в MXML. resultFormat Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение, указывающее способ десериализации возвращаемого результата при вызове HTTP. Значение этого основано на следующем:
  • возвращается XML или возвращаются пары «имя/значение».
  • Способ доступа к результатам; можно получить доступ к таким результатам, как объект, текст или XML.

Значение по умолчанию: object. Допустимыми являются следующие значения:

  • object – значение возвращается в виде XML и анализируется как дерево объектов ActionScript. Это значение по умолчанию.
  • array – значение возвращается в виде XML и анализируется как дерево объектов ActionScript, однако если объект верхнего уровня не является массивом, создается новый массив, и результат устанавливается в качестве первого элемента. Если makeObjectsBindable имеет значение true, то массив включается в ArrayCollection.
  • xml – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XMLnode.
  • flashvars – значение возвращается в виде текста, содержащего пары «имя = значение», разделенные амперсандами, и при анализе преобразуется в объект ActionScript.
  • text – значение возвращается в виде текста и остается необработанным.
  • e4x – значение возвращается в виде XML и в виде литерального XML в объекте ActionScript XML, к которому можно получить доступ с помощью ECMAScript для выражений XML (E4X).
showBusyCursor Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Если значение true, во время выполнения службы отображается курсор в состоянии занятости. Значение по умолчанию false. useProxy Указывает, требуется ли использовать службу прокси Flex.false Указывает, требуется ли использовать службу прокси Flex. Значение по умолчанию false. Если для запросов прокси через сервер Flex не указано значение true, необходимо обеспечить возможность достижения целевого URL-адреса для Flash Player. Также невозможно использовать адреса назначения, определенные в файле services-config.xml, если для свойства useProxy установлено значение false.
SerializationFilter Этот класс следует использовать разработчикам инфраструктуры, подключающим или изменяющим службы HTTP для использования нового формата сериализации.Object Этот класс следует использовать разработчикам инфраструктуры, подключающим или изменяющим службы HTTP для использования нового формата сериализации. Это позволяет вызывать методы объекта службы и контролировать отображение параметров в определенном формате сериализации, например XML, JSON и т. д. Механизм SerializationFilter позволяет также добавлять новый resultFormat.

Экземпляр этого класса может управлять форматированием запросов, ответов 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.

deserializeResult Этот метод принимает результат из запроса HTTP в необработанном формате.преобразованный результат, который затем будет передан в событие результата для службы. operationmx.rpc.http:AbstractOperationВызываемый AbstractOperation. resultнеобработанный результат в виде возвращаемого с сервера. Этот метод принимает результат из запроса HTTP в необработанном формате. При необходимости он может преобразовать его в более типизованный объект ActionScript. Для увеличения степени обобщения класса SerializationFilter можно использовать свойства resultType или resultElementType предоставленного AbstractOperation, в результате код сможет динамически отслеживать входящий запрос по типу, сконфигурированному в ActionScript как тип возвращаемого значения.

Обратите также внимание, что AbstractOperation имеет карту «свойств», которую можно использовать для сохранения дополнительных свойств как части вызова службы в ActionScript с целью обработки десериализации определенного типа.

getRequestContentType Этот метод вызывается службой HTTP непосредственно перед выполнением вызова.тип содержимого, используемого для этого запроса HTTP. operationmx.rpc.http:AbstractOperationВызываемый AbstractionOperation. objтело запроса HTTP, для которого выполняется сериализация contentTypeнастроенный для операции contentType Этот метод вызывается службой HTTP непосредственно перед выполнением вызова. Его роль заключается в выборе используемого для этого запроса contentType. Для многих форматов сериализации предусмотрен один фиксированный тип содержимого, поэтому в этом случае он может быть просто возвращен. Так как служба HTTPService самостоятельно настраивается на определенный тип содержимого, это значение передается здесь и возвращается реализацией по умолчанию. Сериализованное тело запроса также предоставляется с параметром obj на случай, если тип содержимого будет зависеть от типа объекта, посылаемого на сервер. registerFilterForResultFormat Эта статическая функция используется для регистрации нового SerializationFilter для определенного значения resultFormat.mx.rpc.http:SerializationFilterresultFormatПользовательское имя resultFormat связано с предоставляемым SerializationFilter. filtermx.rpc.http:SerializationFilterРегистрируемый SerializationFilter. Эта статическая функция используется для регистрации нового SerializationFilter для определенного значения resultFormat. Если метод выполняется один раз, при запуске можно указать только свойство resultFormat службы HTTPService или HTTPMultiService для использования этого фильтра сериализации с целью упрощения определения разработчиками формата. serializeBody Этот метод запрашивается для всех вызовов службы HTTP.потенциально преобразованное тело для использования в запросе. operationmx.rpc.http:AbstractOperationВызываемый AbstractOperation objявляется начальным телом запроса HTTP, возвращаемым значением serializeParameters или параметром метода sendBody или метода send службы HTTPService. Этот метод запрашивается для всех вызовов службы HTTP. Он может преобразовывать предоставляемый объект в форму, подходящую для помещения непосредственно в тело запроса HTTP. Реализация по умолчанию только возвращает переданный объект как тело без преобразований. serializeParameters Этот метод вызывается из метода send службы HTTP для преобразования параметров в тело запроса.тело, используемое в запросе HTTP operationmx.rpc.http:AbstractOperationВызываемый AbstractOperation. paramsсписок параметров, передаваемых в метод send Этот метод вызывается из метода send службы HTTP для преобразования параметров в тело запроса. Параметры исходного вызова метода send помещаются в массив параметров. Этот метод преобразовывает указанный набор параметров в один объект, используемый в качестве данных тела запроса HTTP. Реализация по умолчанию производит объект, в котором клавиши являются значениями из массива операции argumentNames, а значения являются значениями параметров. При использовании реализации по умолчанию следует определить такое же количество элементов argumentNames, как в массиве параметров.

Обратите внимание, что этот метод не используется при вызове операции HTTP с помощью метода sendBody, принимающего только один объект. В таком случае этот шаг пропускается и вызывается только метод serializeBody.

serializeURL Этот метод используется при необходимости извлечения данных из объекта тела запроса и их кодировки в строку URL-адреса.потенциально изменяемый URL-адрес для использования в этом запросе. operationmx.rpc.http:AbstractOperationВызываемый AbstractOperation objURL-адрес, определенный в службе или операции url Этот метод используется при необходимости извлечения данных из объекта тела запроса и их кодировки в строку URL-адреса. При этом предоставляется входящий URL-адрес как сконфигурированный в операции или в службе. Эта реализация возвращает только входящий URL-адрес без преобразования.