包 | flash.net |
类 | public final class URLRequest |
继承 | URLRequest Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
方法和其他加载操作,以便启动 URL 下载。这些对象还将传递给 FileReference 类的 upload()
和 download()
方法。
只能与本地文件系统内容交互的沙箱中的 SWF 文件无法加载网络沙箱中的资源所包含的数据,也无法为该资源提供数据。
默认情况下,执行调用的 SWF 文件和加载的 URL 必须在同一域中。例如,位于 www.adobe.com 的 SWF 文件只能从同样位于 www.adobe.com 的源中加载数据。要从不同的域中加载数据,请在承载数据的服务器上放置一个 URL 策略文件。
但在 Adobe AIR 中,应用程序安全沙箱中的内容(与 AIR 应用程序一起安装的内容)不受这些安全限制的约束。对于在 Adobe AIR 中运行的内容,应用程序安全沙箱中的文件可以访问使用以下任一 URL 方案的 URL:
-
http
和https
-
file
-
app-storage
-
app
在 Adobe AIR 中运行且不在应用程序安全沙箱中的内容与在浏览器(在 Flash Player 中)中运行的内容遵循相同的限制,加载操作受内容的域和 URL 策略文件中授予的任何权限控制。
注意:App Transport Security(应用程序传输安全性)是在 Apple iOS9 中引入的,它不允许应用程序和 Web 服务之间的连接不安全。鉴于应用程序传输安全性会改变所有通过 Loader 与不安全网站建立的连接,URLLoader 将停止使用而不再起作用。请通过在应用程序中为应用程序描述符添加关键字来指定默认行为的例外情况。
请通过在应用程序中为应用程序描述符的 InfoAdditions 标签添加关键字来指定默认行为的例外情况。
<iPhone> <InfoAdditions> <![CDATA[ <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>www.example.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> ]]> </InfoAdditions> </iPhone>
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:安全性。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
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 | ||
idleTimeout : Number
指定此请求的空闲超时值(以毫秒为单位)。 | URLRequest | ||
manageCookies : Boolean
指定 HTTP 协议堆栈是否应管理此请求的 cookie。 | URLRequest | ||
method : String
控制 HTTP 式提交方法。 | URLRequest | ||
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 | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
useRedirectedURL(sourceRequest:URLRequest, wholeURL:Boolean = false, pattern:* = null, replace:String = null):void
允许用源 URLRequest 中的重定向 URL 替换新 URLRequest 中的某部分 URL。 | URLRequest | ||
返回指定对象的原始值。 | Object |
authenticate | 属性 |
authenticate:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
指定是否应为此请求处理身份验证请求,如果是,则为 true
,否则为 false
。如果为 false
,则验证挑战返回 HTTP 错误。
支持的身份验证方法有:
- Windows — HTTP 基本/摘要、Windows 集成式身份验证(包括 NTLM 和 Kerberos)、SSL 证书身份验证。
- Mac — HTTP 基本/摘要、NTLM、SSL 证书身份验证。
注意:FileReference.upload()
、FileReference.download()
和 HTMLLoader.load()
方法不支持 URLRequest.authenticate
属性。
默认值为 true。
实现
public function get authenticate():Boolean
public function set authenticate(value:Boolean):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
cacheResponse | 属性 |
cacheResponse:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
指定是否应为此请求缓存成功的响应数据。设置为 true
时,AIR 应用程序将使用操作系统的 HTTP 缓存。
注意:HTMLLoader.load()
方法不支持 URLRequest.cacheResponse
属性。
默认值为 true。
实现
public function get cacheResponse():Boolean
public function set cacheResponse(value:Boolean):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
contentType | 属性 |
contentType:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 操作会受应用于上载的安全规则的约束:
- 必须执行 POST 操作以响应用户启动的操作(如鼠标单击或按键)。
- 如果 POST 操作是跨域的(POST 目标与发送 POST 请求的 SWF 文件不在同一台服务器上),则目标服务器必须提供一个允许跨域访问的 URL 策略文件。
另外,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。
实现
public function get contentType():String
public function set contentType(value:String):void
相关 API 元素
data | 属性 |
data:Object
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个对象,它包含将随 URL 请求一起传输的数据。
该属性与 method
属性配合使用。当 method
值为 GET
时,将使用 HTTP 查询字符串语法将 data
值追加到 URLRequest.url
值。当 method
值为 POST
(或 GET
之外的任何值)时,将在 HTTP 请求体中传输 data
值。
URLRequest API 支持二进制 POST
,并支持 URL 编码变量和字符串。该数据对象可以是 ByteArray、URLVariables 或 String 对象。
该数据的使用方式取决于所用对象的类型:
- 如果该对象为 ByteArray 对象,则 ByteArray 对象的二进制数据用作
POST
数据。对于GET
,不支持 ByteArray 类型的数据。对于FileReference.upload()
和FileReference.download()
,也不支持 ByteArray 类型的数据。 - 如果该对象是 URLVariables 对象,并且该方法是
POST
,则使用 x-www-form-urlencoded 格式对变量进行编码,并且生成的字符串会用作POST
数据。一种例外情况是对FileReference.upload()
的调用,在该调用中变量将作为multipart/form-data
发布中的单独字段进行发送。 - 如果该对象是 URLVariables 对象,并且该方法是
GET
,则 URLVariables 对象将定义要随 URLRequest 对象一起发送的变量。 - 否则,该对象会转换为字符串,并且该字符串会用作
POST
或GET
数据。
在方法(如 navigateToURL()
或 FileReference.upload()
)使用 URLRequest 对象前,不会发送该数据。
注意:contentType
值必须与 data
属性中的数据类型对应。请参阅 contentType
属性说明中的注释。
实现
public function get data():Object
public function set data(value:Object):void
相关 API 元素
示例 ( 如何使用本示例 )
该示例的要点遵循:
- 构造函数会创建名为
request
的 URLRequest 实例,同时将远程应用程序的 URL 作为参数。 - 创建了一个 URLVariables 对象,并对它的两个属性进行了赋值。
- URLVariables 对象被赋给了 URLRequest 对象的
data
属性。 - 该示例调用
navigateToURL
,在一个新的浏览器窗口中打开远程应用程序的 URL。
注意:要运行该示例,必须将该示例中的远程应用程序 URL 替换为工作 URL。此外,需要用服务器代码处理 Flash Player 在 URLVariables 对象中捕获的信息。
package { import flash.display.Sprite; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.net.URLVariables; public class URLVariablesExample extends Sprite { public function URLVariablesExample() { var url:String = "http://www.[yourDomain].com/application.jsp"; var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.exampleSessionId = new Date().getTime(); variables.exampleUserLabel = "guest"; request.data = variables; navigateToURL(request); } } }
digest | 属性 |
digest:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
唯一地标识将存储到 Flash Player 缓存中(或从中检索)的已签名 Adobe 平台组件的字符串。Adobe 平台组件是一个签名文件(SWZ 文件),其中包含永久缓存在用户计算机上的 SWF 内容。Adobe 对所有 SWZ 进行签名。摘要对应于单个缓存文件;如果对该文件进行了任何更改,则其摘要的更改将以不可预知的方式进行。通过使用摘要,您可以跨多个域验证缓存文件。具有相同摘要的两个文件是同一个文件,具有不同摘要的两个文件是不同的文件。实际上无法创建文件来“窃听”摘要以假装是另一个摘要。
摘要基于 SHA-256 消息摘要算法(长度为 64 个字符,采用十六进制格式)。
例如,Flex SDK 包括 Flex 框架的 SWZ(而且它为该 SWZ 文件提供了摘要字符串)。可以将此 SWZ 发布到您的 Web 服务器上并加载到 SWF 文件中(使用 URLLoader 对象的 load()
方法)。如果最终用户的计算机已缓存了匹配的 SWZ 文件,则应用程序将使用此缓存的 SWZ 文件。(SWZ 文件在其 digest
与您提供的摘要匹配时匹配。)否则,应用程序将从您指定的 URL 下载 SWZ 文件。
仅在 URLLoader.load()
方法调用中使用的 URLRequest 对象中设置 digest
参数即可加载 SWZ 文件。如果 URLRequest 对象的 digest
属性在用于其他方法时进行了设置,则应用程序将引发 IOError 异常。
实现
public function get digest():String
public function set digest(value:String):void
引发
ArgumentError — 提供的摘要与从下载的签名文件或从缓存中加载的签名文件中提取的文件摘要不匹配。如果提供的摘要长度错误或包含无效(非十六进制)字符,则应用程序也会引发此错误。
|
示例 ( 如何使用本示例 )
loadBytes()
完成加载操作:
var myURLReq:URLRequest = new URLRequest(); myURLReq.url = "http://yourdomain/users/jdoe/test01/_rsc/Automated/AssetCaching_rsc/test01/rsl.swz"; myURLReq.digest = "3B0AA28C7A990385E044D80F5637FB036317BB41E044D80F5637FB036317BB41"; var myURLLoader:URLLoader = new URLLoader(); myURLLoader.dataFormat = URLLoaderDataFormat.BINARY; myURLLoader.addEventListener("complete", onC); myURLLoad.load(myURLReq); function onC(e) { var someLoader:Loader = new Loader(); addChild(someLoader); someLoader.loadBytes((ByteArray)(myURLLoad.data)); }
followRedirects | 属性 |
followRedirects:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Lite 4 |
指定是否要遵循重定向,如果是,则为 true
,否则为 false
。
注意:FileReference.upload()
、FileReference.download()
和 HTMLLoader.load()
方法不支持 URLRequest.followRedirects
属性。
默认值为 true。
实现
public function get followRedirects():Boolean
public function set followRedirects(value:Boolean):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
idleTimeout | 属性 |
idleTimeout:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
指定此请求的空闲超时值(以毫秒为单位)。
空闲超时值是指客户端在建立连接之后、放弃请求之前等待服务器响应的时间。
注意:HTMLLoader.load()
方法不支持 URLRequest.idleTimeout
属性。HTMLLoader 类可定义自身的 idleTimeout
属性。
默认值为 initialized from the URLRequestDefaults.idleTimeout property。
实现
public function get idleTimeout():Number
public function set idleTimeout(value:Number):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
manageCookies | 属性 |
manageCookies:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
指定 HTTP 协议堆栈是否应管理此请求的 cookie。如果为 true
,则将 cookie 添加到请求中并记住响应 cookie。如果为 false
,则不 将 cookie 添加到请求中且不 记住响应 cookie,但用户可以通过直接处理标头来自行管理 cookie。注意:在 Windows 上,当 manageCookies
设置为 true
时,您不能手动将 Cookie 添加到 URL 请求。在其他操作系统上,无论 manageCookies
设置为 true
还是 false
,都允许将 Cookie 添加到请求。允许此操作时,您可以通过将包含 Cookie 数据的 URLRequestHeader
对象添加到 requestHeaders
数组,手动将 Cookie 添加到请求。
在 Mac OS 上,cookie 与 Safari 共享。清除 Mac OS 上的 cookie:
- 打开 Safari。
- 选择“Safari”>“首选参数”,然后单击“安全”面板。
- 单击“显示 Cookie”按钮。
- 单击“全部删除”按钮。
清除 Windows 上的 cookie:
- 打开“Internet 属性”控制面板并单击“常规”选项卡。
- 单击“删除 Cookie”按钮。
默认值为 true。
实现
public function get manageCookies():Boolean
public function set manageCookies(value:Boolean):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
method | 属性 |
method:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
控制 HTTP 式提交方法。
对于在 Flash Player 中(在浏览器中)运行的 SWF 内容,此属性限制为 GET 或 POST 操作,有效值为 URLRequestMethod.GET
或 URLRequestMethod.POST
。
对于在 Adobe AIR 中运行的内容,如果该内容位于应用程序安全沙箱内,则可以使用任何字符串值。否则,与在 Flash Player 中运行的内容一样,仅能使用 GET 或 POST 操作。
对于在 Adobe AIR 中运行的内容,当使用 navigateToURL()
函数时,运行时将使用 POST 方法的 URLRequest(其 method
属性设置为 URLRequestMethod.POST
)视为使用 GET 方法。
注意:如果在 Flash Player 中运行并且引用的表单没有正文,则即使将方法设置为 URLRequestMethod.POST
,Flash Player 也会自动使用 GET 操作。因此,建议始终包括“虚拟”正文以确保使用正确的 method。
默认值为 URLRequestMethod.GET。
实现
public function get method():String
public function set method(value:String):void
引发
ArgumentError — 如果 value 参数不是 URLRequestMethod.GET 或 URLRequestMethod.POST 。
|
相关 API 元素
示例 ( 如何使用本示例 )
URLRequest.method
属性值明确设置为 URLRequestMethod.POST
。
该示例的要点遵循:
- 构造函数会创建名为
request
的 URLRequest 实例,同时将远程应用程序的 URL 作为参数。 - 创建了一个 URLVariables 对象,并对它的两个属性进行了赋值。
- URLVariables 对象被赋给了 URLRequest 对象的
data
属性。 URLRequest.method
属性的值设置为URLRequestMethod.POST
。- 该示例调用
navigateToURL
,在一个新的浏览器窗口中打开远程应用程序的 URL。
注意:要运行该示例,必须将该示例中的远程应用程序 URL 替换为工作 URL。此外,需要用服务器代码处理 Flash Player 在 URLVariables 对象中捕获的信息。
package { import flash.display.Sprite; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; public class URLRequest_method extends Sprite { public function URLRequest_method() { var url:String = "http://www.[yourDomain].com/application.jsp"; var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.exampleSessionId = new Date().getTime(); variables.exampleUserLabel = "guest"; request.data = variables; request.method = URLRequestMethod.POST; navigateToURL(request); } } }
requestHeaders | 属性 |
requestHeaders:Array
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
要追加到 HTTP 请求的 HTTP 请求标头的数组。该数组由 URLRequestHeader 对象组成。数组中的每一对象必须是包含一个名称字符串和一个值字符串的 URLRequestHeader 对象,如下所示:
var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "text/html"));
Flash Player 和 AIR 运行时对请求标头会施加一些限制;有关详细信息,请参阅 URLRequestHeader 类的描述。
并非所有接受 URLRequest 参数的方法都支持 requestHeaders
属性,请参阅有关调用的方法的文档。例如,FileReference.upload()
和 FileReference.download()
方法不支持 URLRequest.requestHeaders
属性。
由于存在浏览器限制,因此仅对 POST
请求支持自定义 HTTP 请求标头,而对 GET
请求不提供相应支持。
实现
public function get requestHeaders():Array
public function set requestHeaders(value:Array):void
相关 API 元素
url | 属性 |
url:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
所请求的 URL。
确保对统一资源定位器规范(请参阅 http://www.faqs.org/rfcs/rfc1738.html)中说明为不安全的字符或 URLRequest 对象的 URL 架构中保留的字符(如果未用于其保留用途)进行编码。例如,按照 "http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25"
的规定,对百分比符号 (%) 使用 "%25"
,对数字符号 (#) 使用 "%23"
。
默认情况下,除非内容在 Adobe AIR 应用程序安全沙箱中运行,否则 URL 必须与执行调用的文件位于同一域中。要从其他域中加载数据,请在承载数据的服务器上放置一个 URL 策略文件。有关详细信息,请参阅 URLRequest 类的说明。
对于在 Adobe AIR 中运行的内容,应用程序安全沙箱中的文件(使用 AIR 应用程序安装的文件)可以通过使用以下任一 URL 方案访问 URL:
http
和https
file
app-storage
app
注意:AIR 和 Flash Player 9.0.115.0 及更高版本中支持 IPv6(Internet 协议版本 6)。IPv6 是支持 128 位地址的 Internet 协议版本(它是支持 32 位地址的早期 IPv4 协议的改进版本)。您可能需要在网络接口中激活 IPv6。有关详细信息,请参阅承载数据的操作系统的帮助。如果承载系统上支持 IPv6,则可以在用方括号 ([]) 括起的 URL 中指定数字 IPv6 文本地址,如下所示。
rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test
实现
public function get url():String
public function set url(value:String):void
示例 ( 如何使用本示例 )
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.load(urlRequest); addChild(loader);
useCache | 属性 |
useCache:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
指定在此 URLRequest 获取数据之前是否应查询本地缓存。
注意:HTMLLoader.load()
方法不支持 URLRequest.useCache
属性。
默认值为 true。
实现
public function get useCache():Boolean
public function set useCache(value:Boolean):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
userAgent | 属性 |
userAgent:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Lite 4 |
指定要在 HTTP 请求中使用的用户代理字符串。
默认值是由 Flash Player 使用的同一用户代理字符串,该字符串在 Mac、Linux 和 Windows 中有所不同。
注意:在将 URLRequest 对象与 HTMLLoader 对象的 load()
方法一起使用时,此属性不影响用户代理字符串。要设置 HTMLLoader 对象的用户代理字符串,请设置 HTMLLoader 对象的 userAgent
属性或设置静态 URLRequestDefaults.userAgent
属性。
实现
public function get userAgent():String
public function set userAgent(value:String):void
引发
SecurityError — 调用方不在 AIR 应用程序安全沙箱中。
|
相关 API 元素
URLRequest | () | 构造函数 |
public function URLRequest(url:String = null)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
创建 URLRequest 对象。如果 System.useCodePage
为 true
,则使用系统代码页对该请求进行编码,而不使用 Unicode。如果 System.useCodePage
为 false
,则使用 Unicode 对该请求进行编码,而不使用系统代码页。
url:String (default = null ) — 所请求的 URL。随后可以使用 url 属性来设置 URL。
|
相关 API 元素
示例 ( 如何使用本示例 )
// Requires // - Button symbol on Stage (or a display object, such as a MovieClip) with instance name "buttonSymbol" // buttonSymbol.addEventListener(MouseEvent.CLICK, buttonSymbol_click); function buttonSymbol_click(evt:MouseEvent):void { var req:URLRequest = new URLRequest("http://www.adobe.com/"); navigateToURL(req, "_blank"); }
useRedirectedURL | () | 方法 |
public function useRedirectedURL(sourceRequest:URLRequest, wholeURL:Boolean = false, pattern:* = null, replace:String = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11.8, AIR 3.8 |
允许用源 URLRequest 中的重定向 URL 替换新 URLRequest 中的某部分 URL。在已重定向初始请求后,这将使后续请求直接发送至重定向的服务器位置。
在初始 URLRequest 完成后,如果 HTTPStatusEvent.redirected
为 true,则可以使用初始请求作为 sourceRequest
调用此方法。默认情况下,来自重定向 URL 的域将用于取代此 URLRequest 的 URL 中的域。必须在调用此方法之前设置 URLRequest.url
。必须先调用此方法,再加载此 URLRequest。或者,如果 wholeURL
参数为 true,则源 URLRequest 中的整个 url(不含文件名)将替换成此 URLRequest 中的整个 URL(不含最终文件名)。此外,调用方可以在 pattern
参数中提供字符串或正则表达式。系统将使用 replace
参数中的字符串来搜索和替换模式。此搜索和替换发生在 URL 替换之后。
参数
sourceRequest:URLRequest — 一个 URLRequest 对象已被请求和重定向。重定向的 URL 将用于替换此 URLRequest 对象的部分 URL。
| |
wholeURL:Boolean (default = false ) — 只使用 sourceRequest 最终 URL 的域来替换此请求 URL 的域,还是使用整个 URL 去掉文件名。默认值为 false 。
| |
pattern:* (default = null ) — 要在 URL 中搜索的模式。可以是 String 或 RegExp 对象。默认值为 null。
| |
replace:String (default = null ) — 要用来替换模式(如果在 URL 中找到)的字符串。默认值为 null。
|
相关 API 元素
complete
事件,并且 XML 文件中的数据会跟踪至输出。附加的事件处理函数会捕获其他事件,包括错误事件。
要运行该示例,请将名为 XMLFile.xml 的文件与 SWF 文件放在同一个目录下。
package { import flash.display.Sprite; import flash.events.*; import flash.net.*; public class URLRequestExample extends Sprite { private var loader:URLLoader; public function URLRequestExample() { loader = new URLLoader(); configureListeners(loader); var request:URLRequest = new URLRequest("XMLFile.xml"); try { loader.load(request); } catch (error:Error) { trace("Unable to load requested document."); } } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); trace("completeHandler: " + loader.data); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
Tue Jun 12 2018, 11:04 AM Z