| window.runtime 属性 | window.runtime.flash.net.URLRequest |
| 继承 | URLRequest Object |
| 运行时版本: | 1.0 |
load() 方法和其他加载操作,以便启动 URL 下载。这些对象还将传递给 FileReference 类的 upload() 和 download() 方法。
默认情况下,执行调用的文件和加载的 URL 必须在同一域中。例如,位于 www.adobe.com 的文件只能从同样位于 www.adobe.com 的源中加载数据。
但在 Adobe AIR 中,应用程序安全沙箱中的内容(与 AIR 应用程序一起安装的内容)不受这些安全限制的约束。对于在 Adobe AIR 中运行的内容,应用程序安全沙箱中的文件可以访问使用以下任一 URL 方案的 URL:
应用程序安全域中的文件(随 AIR 应用程序一起安装的文件),可以使用以下任一 URL 方案访问 URL:
http 和 https
file
app-storage
app
不在应用程序安全沙箱中的内容与在浏览器中运行的内容遵循相同的限制,并且加载操作受内容域的制约。
有关安全性的详细信息,请参阅以下部分:
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| authenticate : Boolean
指定是否应为此请求处理验证请求,如果是,则为 true,否则为 false。 | URLRequest | ||
| cacheResponse : Boolean
指定是否应为此请求缓存成功的响应数据。 | URLRequest | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| contentType : String
data 属性中内容的 MIME 内容类型。 | URLRequest | ||
| data : Object
一个对象,它包含将随 URL 请求一起传输的数据。 | URLRequest | ||
| digest : String
唯一地标识将存储到 Flash Player 缓存中(或从中检索)的已签名 Adobe 平台组件的字符串。 | URLRequest | ||
| followRedirects : Boolean
指定是否要遵循重定向,如果是,则为 true,否则为 false。 | URLRequest | ||
| manageCookies : Boolean
指定 HTTP 协议堆栈是否应管理此请求的 cookie。 | URLRequest | ||
| method : String
控制 HTTP 式提交方法。 | URLRequest | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| requestHeaders : Array
要追加到 HTTP 请求的 HTTP 请求标头的数组。 | URLRequest | ||
| url : String
所请求的 URL。 | URLRequest | ||
| useCache : Boolean
指定在此 URLRequest 获取数据之前是否应查询本地缓存。 | URLRequest | ||
| userAgent : String
指定要在 HTTP 请求中使用的用户代理字符串。 | URLRequest | ||
| 方法 | 定义方 | ||
|---|---|---|---|
URLRequest(url:String = null)
创建 URLRequest 对象。 | URLRequest | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() | toString():String
返回指定对象的字符串表示形式。 | Object | |
![]() | valueOf():Object
返回指定对象的原始值。 | Object | |
| authenticate | 属性 |
authenticate:Boolean| 运行时版本: | 1.0 |
指定是否应为此请求处理身份验证请求,如果是,则为 true,否则为 false。如果为 false,则验证挑战返回 HTTP 错误。
支持的身份验证方法有:
注意:FileReference.upload()、FileReference.download() 和 HTMLLoader.load() 方法不支持 URLRequest.authenticate 属性。
默认值为 true.
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| cacheResponse | 属性 |
cacheResponse:Boolean| 运行时版本: | 1.0 |
指定是否应为此请求缓存成功的响应数据。设置为 true 时,AIR 应用程序将使用操作系统的 HTTP 缓存。
注意:HTMLLoader.load() 方法不支持 URLRequest.cacheResponse 属性。
默认值为 true.
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| contentType | 属性 |
contentType:String| 运行时版本: | 1.0 |
data 属性中内容的 MIME 内容类型。
默认值为 application/x-www-form-urlencoded。
注意:FileReference.upload()、FileReference.download() 和 HTMLLoader.load() 方法不支持 URLRequest.contentType 属性。
发送 POST 请求时,contentType 和 data 属性的值必须正确对应。contentType 属性的值指示服务器如何解释 data 属性的值。
data 属性的值是一个 URLVariables 对象,则 contentType 的值必须是 application/x-www-form-urlencoded。 data 属性的值为其它类型,则 contentType 的值应指示将要发送的 POST 数据的类型(该数据为 data 属性的值中包含的二进制或字符串数据)。 FileReference.upload(),请求的内容类型将自动设置为 multipart/form-data 并忽略 contentType 属性的值。在 Flash Player 10 和更高版本中,如果使用包含上载(由 POST 体内的“content-disposition”标头中的“filename”参数表示)的 multipart Content-Type(例如“multipart/form-data”),则 POST 操作会受应用于上载的安全规则的约束:
另外,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。
另请参见
| data | 属性 |
data:Object| 运行时版本: | 1.0 |
一个对象,它包含将随 URL 请求一起传输的数据。
该属性与 method 属性配合使用。当 method 值为 GET 时,将使用 HTTP 查询字符串语法将 data 值追加到 URLRequest.url 值。当 method 值为 POST(或 GET 之外的任何值)时,将在 HTTP 请求体中传输 data 值。
URLRequest API 支持二进制 POST,并支持 URL 编码变量和字符串。该数据对象可以是 ByteArray、URLVariables 或 String 对象。
该数据的使用方式取决于所用对象的类型:
POST 数据。对于 GET,不支持 ByteArray 类型的数据。对于 FileReference.upload() 和 FileReference.download(),也不支持 ByteArray 类型的数据。POST,则使用 x-www-form-urlencoded 格式对变量进行编码,并且生成的字符串会用作 POST 数据。一种例外情况是对 FileReference.upload() 的调用,在该调用中变量将作为 multipart/form-data 发布中的单独字段进行发送。GET,则 URLVariables 对象将定义要随 URLRequest 对象一起发送的变量。POST 或 GET 数据。在方法(如 navigateToURL() 或 FileReference.upload())使用 URLRequest 对象前,不会发送该数据。
注意:contentType 值必须与 data 属性中的数据类型对应。请参阅 contentType 属性说明中的注释。
另请参见
| digest | 属性 |
digest:String| 运行时版本: | 1.0 |
唯一地标识将存储到 Flash Player 缓存中(或从中检索)的已签名 Adobe 平台组件的字符串。此属性仅适用于 SWF 内容,不适用于在 AIR 中运行的 JavaScript 代码。
ArgumentError — 提供的摘要与从下载的签名文件或从缓存中加载的签名文件中提取的文件摘要不匹配。如果提供的摘要长度错误或包含无效(非十六进制)字符,则应用程序也会引发此错误。
|
| followRedirects | 属性 |
followRedirects:Boolean| 运行时版本: | 1.0 |
指定是否要遵循重定向,如果是,则为 true,否则为 false。
注意:FileReference.upload()、FileReference.download() 和 HTMLLoader.load() 方法不支持 URLRequest.followRedirects 属性。
默认值为 true.
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| manageCookies | 属性 |
manageCookies:Boolean| 运行时版本: | 1.0 |
指定 HTTP 协议堆栈是否应管理此请求的 cookie。如果为 true,则将 cookie 添加到请求中并记住响应 cookie。如果为 false,则不 将 cookie 添加到请求中且不 记住响应 cookie,但用户可以通过直接处理标头来自行管理 cookie。
在 Mac OS 上,cookie 与 Safari 共享。清除 Mac OS 上的 cookie:
清除 Windows 上的 cookie:
默认值为 true.
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| method | 属性 |
method:String| 运行时版本: | 1.0 |
控制 HTTP 式提交方法。
如果该内容位于应用程序安全沙箱内,则可以使用任何字符串值。否则,只能使用 GET 或 POST 操作,且有效值为 URLRequestMethod.GET 或 URLRequestMethod.POST。
使用 navigateToURL() 函数时,运行时将使用 POST 方法的 URLRequest(其 method 属性设置为 URLRequestMethod.POST)视为使用 GET 方法。
默认值为 URLRequestMethod.GET.
ArgumentError — 如果 value 参数不是 URLRequestMethod.GET 或 URLRequestMethod.POST。
|
另请参见
URLRequest.method 属性值显式设置为 URLRequestMethod.POST。
该示例的要点遵循:
request 的 URLRequest 实例,同时将远程应用程序的 URL 作为参数。data 属性。URLRequest.method 属性的值设置为 URLRequestMethod.POST。navigateToURL,在一个新的浏览器窗口中打开远程应用程序的 URL。注意:若要运行该示例,必须将该示例中的远程应用程序 URL 替换为工作 URL。此外,还需要服务器代码来处理 URLVariables 对象中由 AIR 应用程序捕获的信息。
<html>
<head>
<script src="AIRAliases.js" />
<script>
function init() {
var url = "http://www.[yourDomain].com/application.jsp";
var request = new air.URLRequest(url);
var variables = new air.URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
request.method = air.URLRequestMethod.POST;
air.navigateToURL(request);
}
</script>
</head>
<body onload='init()'>
</body>
</html>
| requestHeaders | 属性 |
requestHeaders:Array| 运行时版本: | 1.0 |
要追加到 HTTP 请求的 HTTP 请求标头的数组。该数组由 URLRequestHeader 对象组成。数组中的每一对象必须是包含一个名称字符串和一个值字符串的 URLRequestHeader 对象,如下所示:
var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "text/html"));
AIR 运行时对请求标题进行了某些限制,有关详细信息,请参阅 URLRequestHeader 类的描述。
并非所有接受 URLRequest 参数的方法都支持 requestHeaders 属性,请参阅有关调用的方法的文档。例如,FileReference.upload() 和 FileReference.download() 方法不支持 URLRequest.requestHeaders 属性。
由于存在浏览器限制,因此仅对 POST 请求支持自定义 HTTP 请求标头,而对 GET 请求不提供相应支持。
另请参见
| url | 属性 |
url:String| 运行时版本: | 1.0 |
所请求的 URL。
确保对统一资源定位器规范(请参阅 http://www.faqs.org/rfcs/rfc1738.html)中说明为不安全的字符或 URLRequest 对象的 URL 架构中保留的字符(如果未用于其保留用途)进行编码。例如,按照“http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25”的规定,对百分比符号 (%) 使用“%25”,对数字符号 (#) 使用“%23”。
默认情况下,除非内容在应用程序安全沙箱中运行,否则 URL 必须与执行调用的文件位于同一域中。有关详细信息,请参阅 URLRequest 类的说明。
应用程序安全沙箱中的文件(随 AIR 应用程序一起安装的文件),可以使用以下任一 URL 方案访问 URL:
http 和 https file app-storage app 注意:IPv6(Internet 协议版本 6)受支持。IPv6 是支持 128 位地址的 Internet 协议版本(它是支持 32 位地址的早期 IPv4 协议的改进版本)。您可能需要在网络接口中激活 IPv6。有关详细信息,请参阅承载数据的操作系统的帮助。如果承载系统上支持 IPv6,则可以在用方括号 ([]) 括起的 URL 中指定数字 IPv6 文本地址。
| useCache | 属性 |
useCache:Boolean| 运行时版本: | 1.0 |
指定在此 URLRequest 获取数据之前是否应查询本地缓存。
注意:HTMLLoader.load() 方法不支持 URLRequest.useCache 属性。
默认值为 true.
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| userAgent | 属性 |
userAgent:String| 运行时版本: | 1.0 |
指定要在 HTTP 请求中使用的用户代理字符串。
注意:在将 URLRequest 对象与 HTMLLoader 对象的 load() 方法一起使用时,此属性不影响用户代理字符串。若要设置 HTMLLoader 对象的用户代理字符串,请设置 HTMLLoader 对象的 userAgent 属性或设置静态 URLRequestDefaults.userAgent 属性。
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
另请参见
| URLRequest | () | 构造函数 |
function URLRequest(url:String = null)| 运行时版本: | 1.0 |
创建 URLRequest 对象。如果 System.useCodePage 为 true,则使用系统代码页对该请求进行编码,而不使用 Unicode。如果 System.useCodePage 为 false,则使用 Unicode 对该请求进行编码,而不使用系统代码页。
url:String (default = null) — 所请求的 URL。随后可以使用 url 属性来设置 URL。
|
另请参见
complete 事件,并且 XML 文件中的数据会跟踪至输出。附加的事件处理函数会捕获其它事件,包括错误事件。
要运行该示例,请将 AIRAliases.js 文件和名为 XMLFile.xml 的 XML 文件与 HTML 文件放在同一个目录中。
<html>
<head>
<script src="AIRAliases.js" />
<script>
function init() {
var loader = new air.URLLoader();
configureListeners(loader);
var request = new air.URLRequest("XMLFile.xml");
try {
loader.load(request);
} catch (error) {
air.trace("Unable to load requested document.");
}
}
function configureListeners(dispatcher) {
dispatcher.addEventListener(air.Event.COMPLETE, completeHandler);
dispatcher.addEventListener(air.Event.OPEN, openHandler);
dispatcher.addEventListener(air.ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(air.SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(air.HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(air.IOErrorEvent.IO_ERROR, ioErrorHandler);
}
function completeHandler(event) {
var loader = air.URLLoader(event.target);
air.trace("completeHandler: " + loader.data);
}
function openHandler(event) {
air.trace("openHandler: " + event);
}
function progressHandler(event) {
air.trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
function securityErrorHandler(event) {
air.trace("securityErrorHandler: " + event);
}
function httpStatusHandler(event) {
air.trace("httpStatusHandler: " + event);
}
function ioErrorHandler(event) {
air.trace("ioErrorHandler: " + event);
}
</script>
</head>
<body onload='init()'>
</body>
</html>