Peticiones de servicios web

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Existen diversos servicios web basados en HTTP. Algunos de los tipos principales son:

  • REST

  • XML-RPC

  • SOAP

Para utilizar un servicio web en ActionScript 3, debe crear un objeto URLRequest, construir la llamada al servicio web con variables URL o con un documento XML, y enviar la llamada al servicio mediante un objeto URLLoader. La arquitectura de Flex contiene varias clases que facilitan el uso de los servicios web, de utilidad especial cuando se accede a servicios SOAP complejos. Desde Flash Professional CS3, es posible utilizar las clases de Flex en aplicaciones desarrolladas con Flash Professional, además de en aplicaciones desarrolladas en Flash Builder.

En aplicaciones de AIR basadas en HTML, puede usar las clases URLRequest y URLLoader, o bien la clase XMLHttpRequest de JavaScript. Si lo desea, también puede crear una biblioteca SWF que contenga los componentes de servicios web de la arquitectura de Flex y los ponga a disposición del código JavaScript.

Cuando la aplicación se ejecuta en un navegador, solo es posible utilizar servicios web del mismo dominio de Internet que el archivo SWF que llama, a no ser que el servidor que aloja el servicio web también tenga un archivo de política entre dominios para permitir el acceso desde otros dominios. Una técnica que se suele utilizar cuando no hay archivo de política entre dominios disponible es pasar por el proxy las peticiones del propio servidor. Adobe Blaze DS y Adobe LiveCycle admiten proxy de servicios web.

En aplicaciones de AIR, no se requiere un archivo de política entre dominios si la llamada al servicio web se origina en el entorno limitado de seguridad de la aplicación. El contenido de la aplicación de AIR nunca se ofrece desde un dominio remoto, por lo que no puede participar en tipos de ataques prevenidos por políticas entre dominios. En aplicaciones de AIR basadas en HTML, el contenido del entorno limitado de seguridad de la aplicación puede realizar peticiones XMLHttpRequest entre dominios. Puede permitir que el contenido de otros entornos limitados de seguridad de la aplicación realicen peticiones XMLHttpRequest entre dominios siempre y cuando el contenido se cargue en un iframe.