Web 服务请求

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

存在各种基于 HTTP 的 Web 服务。主要类型包括:

  • REST

  • XML-RPC

  • SOAP

要在 ActionScript 3 中使用 Web 服务,应创建一个 URLRequest 对象,使用 URL 变量或 XML 文档构建 Web 服务调用,然后使用 URLLoader 对象将调用发送到服务。Flex 框架包含诸多类,其中几个类使借助 Web 服务更加轻松,尤其非常适用于访问复杂的 SOAP 服务。从 Flash Professional CS3 开始,您就可以将 Flex 类用于在 Flash Professional 和 Flash Builder 中开发的应用程序。

在基于 HTML 的 AIR 应用程序中,您可以使用 URLRequest 和 URLLoader 类或 JavaScript XMLHttpRequest 类。如果需要,您还可以创建 SWF 库,将 Flex 框架的 Web 服务组件公开到您的 JavaScript 代码。

当应用程序在浏览器中运行时,您使用的 Web 服务只能位于调用 SWF 所在的 Internet 域,除非承载 Web 服务的服务器也承载允许从其他域访问的跨域策略文件。当跨域策略文件不可用时,通常使用通过自己的服务器代理请求这项技术。Adobe Blaze DS 和 Adobe LiveCycle 支持 Web 服务代理。

在 AIR 应用程序中,当应用程序安全沙箱调用 Web 服务时不需要跨域策略文件。远程域从不为 AIR 应用程序内容提供服务,因此该域不能加入跨域策略阻止的攻击类型。在基于 HTML 的 AIR 应用程序中,应用程序安全沙箱中的内容可以生成跨域 XMLHttpRequest。您可以允许其他安全沙箱中的内容生成跨域 XMLHttpRequest,只要该内容加载到iframe 中。