window.runtime 属性window.runtime.flash.net.URLRequest
继承URLRequest Inheritance Object
运行时版本:  1.0

URLRequest 类可捕获单个 HTTP 请求中的所有信息。 URLRequest 对象将传递给 Loader、URLStream 和 URLLoader 类的 load() 方法和其他加载操作,以便启动 URL 下载。这些对象还将传递给 FileReference 类的 upload()download() 方法。

默认情况下,执行调用的文件和加载的 URL 必须在同一域中。例如,位于 www.adobe.com 的文件只能从同样位于 www.adobe.com 的源中加载数据。

但在 Adobe AIR 中,应用程序安全沙箱中的内容(与 AIR 应用程序一起安装的内容)不受这些安全限制的约束。对于在 Adobe AIR 中运行的内容,应用程序安全沙箱中的文件可以访问使用以下任一 URL 方案的 URL:

应用程序安全域中的文件(随 AIR 应用程序一起安装的文件),可以使用以下任一 URL 方案访问 URL:

不在应用程序安全沙箱中的内容与在浏览器中运行的内容遵循相同的限制,并且加载操作受内容域的制约。

有关安全性的详细信息,请参阅以下部分:

查看示例

另请参见

URLRequestHeader
URLRequestDefaults
URLLoader
URLStream


属性
 属性定义方
  authenticate : Boolean
指定是否应为此请求处理验证请求,如果是,则为 true,否则为 false。
URLRequest
  cacheResponse : Boolean
指定是否应为此请求缓存成功的响应数据。
URLRequest
 Inheritedconstructor : 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
 Inheritedprototype : 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
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
 Inherited
toString():String
返回指定对象的字符串表示形式。
Object
 Inherited
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 请求时,contentTypedata 属性的值必须正确对应。contentType 属性的值指示服务器如何解释 data 属性的值。

在 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 对象。

该数据的使用方式取决于所用对象的类型:

在方法(如 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:

  1. 打开 Safari。
  2. 选择“Safari”>“首选参数”,然后单击“安全”面板。
  3. 单击“显示 Cookie”按钮。
  4. 单击“全部删除”按钮。

清除 Windows 上的 cookie:

  1. 打开“Internet 属性”控制面板并单击“常规”选项卡。
  2. 单击“删除 Cookie”按钮。

默认值为 true.


引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。

另请参见

method属性 
method:String
运行时版本:  1.0

控制 HTTP 式提交方法。

如果该内容位于应用程序安全沙箱内,则可以使用任何字符串值。否则,只能使用 GET 或 POST 操作,且有效值为 URLRequestMethod.GETURLRequestMethod.POST

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

默认值为 URLRequestMethod.GET.


引发
ArgumentError — 如果 value 参数不是 URLRequestMethod.GETURLRequestMethod.POST

另请参见


示例
下例在一个新的浏览器窗口中打开位于 http://www.[yourDomain].com/application.jsp 上的远程应用程序,并将 URLVariables 对象中捕获的有关用户会话的数据传递给该应用程序。它将 URLRequest.method 属性值显式设置为 URLRequestMethod.POST

该示例的要点遵循:

  1. 构造函数会创建名为 request 的 URLRequest 实例,同时将远程应用程序的 URL 作为参数。
  2. 创建了一个 URLVariables 对象,并对它的两个属性进行了赋值。
  3. URLVariables 对象被赋给了 URLRequest 对象的 data 属性。
  4. URLRequest.method 属性的值设置为 URLRequestMethod.POST
  5. 该示例调用 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:

注意: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.useCodePagetrue,则使用系统代码页对该请求进行编码,而不使用 Unicode。如果 System.useCodePagefalse,则使用 Unicode 对该请求进行编码,而不使用系统代码页。

参数
url:String (default = null) — 所请求的 URL。随后可以使用 url 属性来设置 URL。

另请参见

示例
URLRequestExample.as

下例创建一个新的 Loader 对象,并为其传递一个包含 XML 文件路径的 URLRequest 对象。 如果加载操作成功,将调度 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>