`

[入门]AIR网络与通信(2)—— URL请求和网络(转载)

阅读更多

使用 URLRequest 类可定义的内容不再仅仅局限于 URL 字符串。AIR 向 URLRequest 类添加了一些新属性,这些属性只可用于应用程序安全沙箱中运行的 AIR 内容。运行时中的内容可以使用新的 URL 方案(filehttp 等标准方案除外)来定义 URL。

URLRequest 属性

URLRequest 类包括以下只可用于 AIR 应用程序安全沙箱中的内容的属性:

属性

说明

followRedirects

指定是否要遵循重定向(默认值为 true;如果不遵循,则为 false)。仅在运行时中支持此属性。

manageCookies

指定 HTTP 协议堆栈是否应管理此请求的 cookie(默认值为 true;如果不管理,则为 false)。仅在运行时中支持此属性。

authenticate

指定是否应为此请求处理身份验证请求(如果是,则为 true)。仅在运行时中支持此属性。默认值为对请求进行身份验证 — 如果服务器要求显示凭据,则可能会显示身份验证对话框。还可以设置用户名和密码,请参阅设置 URLRequest 默认值

cacheResponse

指定是否应为此请求缓存成功的响应数据。仅在运行时中支持此属性。默认值为缓存响应 (true)。

useCache

指定在此 URLRequest 获取数据之前是否应查询本地缓存。仅在运行时中支持此属性。默认值 (true) 为使用本地缓存版本(如果可用)。

userAgent

指定要在 HTTP 请求中使用的用户代理字符串。

URLRequest 对象的以下属性可以通过任何沙箱(不仅是 AIR 应用程序安全沙箱)中的内容进行设置:

属性

说明

contentType

使用 URL 请求发送的任何数据的 MIME 内容类型。

data

一个对象,它包含将随 URL 请求一起传输的数据。

digest

对缓存文件的安全“摘要”,用于跟踪 Adobe® Flash® Player 缓存。

method

控制 HTTP 请求方法,例如 GET 或 POST 操作。(AIR 应用程序安全域中运行的内容可以指定 "GET""POST" 之外的字符串作为 method 属性。允许使用任何 HTTP 动词,"GET" 为默认方法。请参阅 AIR 安全性。)

requestHeaders

要追加到 HTTP 请求的 HTTP 请求标头的数组。

url

指定要请求的 URL。

注: HTMLLoader 类具有相关属性,用于设置与 HTMLLoader 对象加载的内容有关的设置。有关详细信息,请参阅关于 HTMLLoader 类

设置 URLRequest 默认值

通过 URLRequestDefaults 类,可以定义 URLRequest 对象的默认设置。例如,以下代码设置 manageCookiesuseCache 属性的默认值:

URLRequestDefaults.manageCookies = false; 
URLRequestDefaults.useCache = false;

URLRequestDefaults 类包含 setLoginCredentialsForHost() 方法,使用该方法可指定要用于特定主机的默认用户名和密码。该方法的 hostname 参数中定义的主机可以为域(如 "www.example.com")或域和端口号(如 "www.example.com:80")。请注意,"example.com""www.example.com""sales.example.com" 均视为各自唯一的主机。

只有在服务器要求提供凭据时才会使用这些凭据。如果用户已进行了身份验证(例如,通过使用身份验证对话框),则无法通过调用 setLoginCredentialsForHost() 方法来更改已进行身份验证的用户。

例如,以下代码设置要在 www.example.com 上使用的默认用户名和密码:

URLRequestDefaults.setLoginCredentialsForHost("www.example.com", "Ada", "love1816$X"); 

URLRequestDefaults 设置的各个属性仅应用于设置该属性的内容所在的应用程序域。而 setLoginCredentialsForHost() 方法则适用于 AIR 应用程序内所有应用程序域中的内容。通过此方法,应用程序可以使用指定的凭据登录到主机,并从而登录应用程序中的所有 内容。

有关详细信息,请参阅 ActionScript 3.0 语言和组件参考 (http://www.adobe.com/go/learn_air_aslr_cn) 中的 URLRequestDefaults 类。

在 URL 中使用 AIR URL 方案

在 AIR 的任何安全沙箱中定义 URL 时,可以使用以下标准 URL 方案:

<!-- -->

http: 和 https:

使用方法同 Web 浏览器中的用法。

<!-- -->

file:

使用此方案可指定相对于文件系统根目录的相对路径。例如:

file:///c:/AIR Test/test.txt 

为应用程序安全沙箱中运行的内容定义 URL 时,还可以使用以下方案:

<!-- -->

app:

使用此方案可指定相对于应用程序安装根目录(包含安装的应用程序的应用程序描述符文件的目录)的相对路径。例如,以下路径指向应用程序安装目录的 resources 子目录:

app:/resources 

当在 ADL 应用程序中运行时,应用程序资源目录设置为包含应用程序描述符文件的目录。

<!-- -->

app-storage:

使用此方案可指定相对于应用程序存储目录的相对路径。对于安装的每个应用程序,AIR 为每个用户都定义了唯一的应用程序存储目录,这些目录对于存储特定于各个应用程序的数据非常有用。例如,以下路径指向应用程序存储目录的 settings 子目录中的 prefs.xml 文件:

app-storage:/settings/prefs.xml 

应用程序存储目录的位置由用户名、应用程序 ID 和发布者 ID 共同确定:

  • 在 Mac OS 中,位于:

    /Users/用户名/Library/Preferences/应用程序 ID.发行商 ID/Local Store/

    例如:

    /Users/babbage/Library/Preferences/com.example.TestApp.02D88EEED35F84C264A183921344EEA353A629FD.1/Local Store
  • 在 Windows 中,位于 Documents and Settings 目录下的以下位置:

    用户名/Application Data/应用程序 ID.发行商 ID/Local Store/

    例如:

    C:\Documents and Settings\babbage\Application Data\com.example.TestApp.02D88EEED35F84C264A183921344EEA353A629FD.1\Local Store
  • 在 Linux 中位于:

    /home/用户名/.appdata/应用程序 ID.发行商 ID/Local Store/

    例如:

    /home/babbage/.appdata/com.example.TestApp.02D88EEED35F84C264A183921344EEA353A629FD.1\Local Store

通过 File.applicationStorageDirectory 创建的 File 对象的 的URL(以及 url 属性)使用 app-storage URL 方案,如下所示:

var dir:File = File.applicationStorageDirectory; 
dir = dir.resolvePath("preferences"); 
trace(dir.url); // app-storage:/preferences 

mailto:

在传递给 navigateToURL() 函数的 URLRequest 对象中可以使用 mailto 方案。请参阅在默认系统 Web 浏览器中打开 URL

在 AIR 中使用 URL 方案

可以借助使用了以上任意 URL 方案的 URLRequest 对象来定义许多其它对象(例如 FileStream 或 Sound 对象)的 URL 请求。还可以在 AIR 中运行的 HTML 内容中使用这些方案;例如,可以在 img 标签的 src 属性中使用它们。

但在应用程序安全沙箱中的内容中,只能使用这些特定于 AIR 的 URL 方案(app:app-storage:)。有关详细信息,请参阅 AIR 安全性

禁止的 URL 方案

某些 API 允许在 Web 浏览器中启动内容。出于安全方面的考虑,在 AIR 中使用这些 API 时将禁止某些 URL 方案。禁止的方案列表取决于使用 API 的代码所在的安全沙箱。有关详细信息,请参阅在默认系统 Web 浏览器中打开 URL

对 URLStream 类所做的更改

<!-- END PAGE TITLE --><!-- BEGIN IONCOMMENTCOUNT --><!-- END IONCOMMENTCOUNT -->

URLStream 类为从 URL 下载数据提供低级访问。在运行时中,URLStream 类包含一个新事件 httpResponseStatus。与 httpStatus 事件不同,httpResponseStatus 事件在传送任何响应数据之前传送。httpResponseStatus 事件(在 HTTPStatusEvent 类中定义)包含 responseURL 属性(从中返回响应的 URL)和 responseHeaders 属性(表示响应返回的响应标头的 URLRequestHeader 对象的数组)。

 

在默认系统 Web 浏览器中打开 URL

<!-- END PAGE TITLE --><!-- BEGIN IONCOMMENTCOUNT --><!-- END IONCOMMENTCOUNT -->

可以使用 navigateToURL() 函数在默认系统 Web 浏览器中打开 URL。对于作为此函数的 request 参数传递的 URLRequest 对象,仅使用 url 属性。

注: 使用 navigateToURL() 函数时,运行时将使用 POST 方法(其 method 属性设置为 URLRequestMethod.POST 的方法)的 URLRequest 对象视为使用 GET 方法。

使用 navigateToURL() 函数时,将根据调用 navigateToURL() 函数的代码所在的安全沙箱来允许 URL 方案。

某些 API 允许在 Web 浏览器中启动内容。出于安全方面的考虑,在 AIR 中使用这些 API 时将禁止某些 URL 方案。禁止的方案列表取决于使用 API 的代码所在的安全沙箱。(有关安全沙箱的详细信息,请参阅 AIR 安全性。)

<!-- -->

应用程序沙箱

允许以下方案。使用方法同 Web 浏览器中的用法。

  • http:

  • https:

  • file:

  • mailto: — AIR 将这些请求指向注册的系统邮件应用程序

  • app:

  • app-storage:

禁止其它所有 URL 方案。

<!-- -->

远程沙箱

允许以下方案。使用方法同 Web 浏览器中的用法。

  • http:

  • https:

  • mailto: — AIR 将这些请求指向注册的系统邮件应用程序

禁止其它所有 URL 方案。

<!-- -->

只能与本地文件系统内容交互的沙箱

允许以下方案。使用方法同 Web 浏览器中的用法。

  • file:

  • mailto: — AIR 将这些请求指向注册的系统邮件应用程序

禁止其它所有 URL 方案。

<!-- -->

只能与远程内容交互的沙箱

允许以下方案。使用方法同 Web 浏览器中的用法。

  • http:

  • https:

  • mailto: — AIR 将这些请求指向注册的系统邮件应用程序

禁止其它所有 URL 方案。

<!-- -->

受信任的本地沙箱

允许以下方案。使用方法同 Web 浏览器中的用法。

  • file:

  • http:

  • https:

  • mailto: — AIR 将这些请求指向注册的系统邮件应用程序

禁止其它所有 URL 方案。

<!-- BEGIN USER PREFERENCES -->
<!-- BEGIN USER PREFERENCES -->
分享到:
评论

相关推荐

    ADOBEAIR完整入门与开发实录——使用FLEXFLASHAJAX开发AIR应用第01章-.pdf

    综上所述,本书《ADOBE AIR完整入门与开发实录——使用FLEX、FLASH、AJAX开发AIR应用》以理论与实践相结合的方式,细致地梳理了Adobe AIR开发平台的特性与优势,并对如何利用该平台开发RIA应用程序提供了详尽的指导...

    Flash+Flex+Air 移动开发入门经典——适用于Android、iOS、BlackBerry系统

    Flash+Flex+Air 移动开发入门经典——适用于Android、iOS、BlackBerry系统

    ADOBE_AIR完整入门与开发实录——使用FLEXFLASHAJAX开发AIR应用_第02章.doc

    AIR的全称是Adobe Integrated Runtime,它的核心价值在于将Web应用的便捷性和桌面应用的交互性与性能相结合,提供更丰富的用户体验。 在【什么是Adobe AIR】这一部分,我们可以了解到,Adobe AIR类似于一个运行时...

    全AIR 的 Socket通信(air服务端、air客户端)

    在本文中,我们将深入探讨如何实现全AIR的Socket通信,主要关注AIR服务端和AIR客户端的构建。AIR,即Adobe Integrated Runtime,是一个跨平台的应用程序运行环境,允许开发者使用ActionScript 3创建桌面应用程序。...

    Flash+Flex+Air移动开发入门经典 pdf

    《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...

    AIR入门(一)

    《AIR入门(一)——探索Adobe Integrated Runtime技术》 Adobe Integrated Runtime(AIR)是一种跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript、ActionScript等Web技术创建桌面应用程序。这篇...

    AdobeAIR入门教程

    7. **网络通信**:学习如何使用XMLSocket、URLLoader等类进行网络通信,包括HTTP请求、WebSocket连接等。 8. **桌面集成**:探索如何利用Adobe AIR提供的API实现桌面级特性,如拖放操作、桌面通知、系统菜单集成等...

    ZigBee编译器AIR入门

    2. **ZigBee协议栈**:AIR技术基于ZigBee协议栈,包括物理层(PHY)、媒体访问控制(MAC)层和网络层(NWK)等。开发者需要理解这些层次的功能以及它们如何协同工作。 3. **编程语言和API**:大多数IAR编译器支持C或C++...

    GSM信令基础——移动通信技术

    GSM信令主要包括两个主要部分:空中接口(Air Interface)信令和网络内部信令。空中接口信令涉及手机与基站之间的通信,而网络内部信令则涉及不同网络节点间的交互,如移动交换中心(MSC)、拜访位置寄存器(VLR)等...

    AdobeAIR——air的安装文件

    这是一个Installer文件,安装的是AdobeAIR软件。使用此软件可以使得air文件轻松安装。

    AIR 入门教程和官方帮助文档

    通过阅读这些文档,你可以深入理解AIR的内部工作机制,学习如何利用它的特性,如本地文件系统访问、网络通信、桌面通知、多线程等。 六、实战练习 为了巩固所学,你可以尝试创建一个简单的AIR应用,比如一个桌面...

    airMAX_Sector_AM-2G16-90_QSG_airmax_max_AIR_sector_

    标题 "airMAX_Sector_AM-2G16-90_QSG_airmax_max_AIR_sector_" 暗示我们正在讨论的是Ubiquiti Networks公司的airMAX系列中的一个产品——AM-2G16-90度天线。该天线是专为无线通信设计的,特别是用于提供宽广覆盖范围...

    adobe air 入门示例

    8. **API和功能使用**:AIR提供了许多API,比如访问本地文件系统、网络通信、数据库存储等,文章可能会展示如何利用这些API来扩展应用的功能。 9. **调试与测试**:开发过程中,调试和测试是必不可少的环节,文章...

    Air Flex Sqlite通信

    本示例着重于“Air Flex Sqlite通信”,即如何在Adobe AIR应用中使用Flex与SQLite数据库进行交互。 SQLite是一个轻量级的、自包含的、无服务器的SQL数据库引擎,被广泛用于移动应用和嵌入式系统。在Adobe AIR中,...

    ipad air2 电路原理图.pdf

    首先,“ipad air2 电路原理图.pdf”这个标题直接揭示了文档的性质,它是一份iPad Air 2的电路原理图。电路原理图是电子工程领域中用于展示电子设备内部电路连接和组件布局的图表。这些图表通常用来帮助工程师和技术...

    file2air-1.1.tgz

    "file2air-1.1.tgz"是一个专门针对无线网络的攻击工具,它在网络安全研究与防御领域具有重要的讨论价值。本文将详细解析该工具的功能、工作原理以及如何应对这类攻击。 1. **file2air工具概述** "file2air"是用于...

    通信与网络中的泰克通信推出K2Air用于LTE网络监测

    泰克通信是一家在通信与网络领域具有领先地位的公司,尤其在测试、监测和优化解决方案方面具有深厚的技术积累。在2009年的世界移动通信大会上,泰克通信推出了其创新产品——K2Air监测系统,专门针对LTE网络的性能...

    Air780E在ThingsCloud的通讯

    在本文中,我们将深入探讨Air780E在ThingsCloud平台上的通信机制,特别是涉及到的网络注册信息查询、网络状态监控以及SIM卡管理等关键环节。这些知识点对于理解和使用Air780E进行物联网(IoT)应用开发至关重要。 ...

Global site tag (gtag.js) - Google Analytics