包 | mx.rpc.http |
类 | public class HTTPService |
继承 | HTTPService AbstractInvoker EventDispatcher Object |
子类 | HTTPService |
<mx:HTTPService>
标签代表 HTTPService 对象。当调用 HTTPService 对象的 send()
方法时,将发出对指定 URL 的 HTTP 请求,并且返回 HTTP 响应。可以选择向指定 URL 传递参数。如果没有使用基于服务器的代理服务,则只能使用 HTTP GET 或 POST 方法。如果将 useProxy 属性设置为 true 并使用基于服务器的代理服务,则还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。
注意:由于软件限制,当使用 GET 时 HTTPService 不生成用户界面友好的错误消息。
另请参见
属性 | 定义方 | ||
---|---|---|---|
channelSet : ChannelSet 提供对服务使用的 ChannelSet 的访问。 | HTTPService | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
contentType : String = "application/x-www-form-urlencoded" 服务请求的内容类型。 | HTTPService | ||
destination : String services-config.xml 文件中的 HTTPService 目标名称。 | HTTPService | ||
headers : Object 发送到第三方端点的自定义 HTTP 标头。 | HTTPService | ||
lastResult : Object [只读 (read-only)] 上次调用的结果。 | AbstractInvoker | ||
makeObjectsBindable : Boolean 当该置为 true 时,返回的匿名对象将强制成为可绑定的对象。 | AbstractInvoker | ||
method : String = "GET" 发送请求的 HTTP 方法。 | HTTPService | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
request : Object 用作 URL 参数的名称/值对的对象。 | HTTPService | ||
requestTimeout : int 提供对已发送消息的请求超时(以秒为单位)的访问。 | HTTPService | ||
resultFormat : String 指示如何反序列化由 HTTP 调用返回的结果的值。 | HTTPService | ||
rootURL : String HTTPService 对象在计算相对 URL 时应使用的 URL。 | HTTPService | ||
url : String 服务的位置。 | HTTPService | ||
useProxy : Boolean 指定是否使用 Flex 代理服务。 | HTTPService | ||
xmlDecode : Function ActionScript 函数,用于解码 XML 格式的服务结果。 | HTTPService | ||
xmlEncode : Function ActionScript 函数,用于将服务请求按 XML 编码。 | HTTPService |
方法 | 定义方 | ||
---|---|---|---|
创建一个新的 HTTPService。 | HTTPService | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
取消上次服务调用或具有指定 ID 的调用。 | AbstractInvoker | ||
将 invoker 的 result 属性设置为 null。 | AbstractInvoker | ||
断开服务的网络连接。 | HTTPService | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将用户从目标中注销。 | HTTPService | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
执行 HTTPService 请求。 | HTTPService | ||
为服务访问的目标设置凭据。 | HTTPService | ||
设置循环操作动态属性的可用性。 | Object | ||
在访问 HTTP URL 时对用户进行身份验证的用户名和密码。 | HTTPService | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
当 HTTPService 调用失败时调度。 | HTTPService | |||
只要在通道尝试发送消息前没有引发错误,当调用 HTTPService 调用时将触发 invoke 事件。 | HTTPService | |||
当 HTTPService 调用成功返回时调度。 | HTTPService |
常量 | 定义方 | ||
---|---|---|---|
CONTENT_TYPE_FORM : String = "application/x-www-form-urlencoded" [静态] 指示由 HTTP 服务发送的数据按 application/x-www-form-urlencoded 进行编码。 | HTTPService | ||
CONTENT_TYPE_XML : String = "application/xml" [静态] 指示由 HTTP 服务发送的数据按 application/xml 进行编码。 | HTTPService | ||
DEFAULT_DESTINATION_HTTP : String = "DefaultHTTP" [静态] 指示 HTTPService 对象使用 DefaultHTTP 目标。 | HTTPService | ||
DEFAULT_DESTINATION_HTTPS : String = "DefaultHTTPS" [静态] 指示 HTTPService 对象使用 DefaultHTTPS 目标。 | HTTPService | ||
ERROR_DECODING : String = "Client.CouldNotDecode" [静态] 指示无法将 XML 格式的结果分析为 XML 实例或解码为对象。 | HTTPService | ||
ERROR_ENCODING : String = "Client.CouldNotEncode" [静态] 指示输入参数无法按 XML 编码。 | HTTPService | ||
ERROR_URL_REQUIRED : String = "Client.URLRequired" [静态] 指示 useProxy 属性设置为 false 但没有提供 url。 | HTTPService | ||
RESULT_FORMAT_ARRAY : String = "array" [静态] 结果格式“array”与“object”相似,但是其返回的值始终为数组;这样,如果从结果格式“object”返回的结果尚不是数组,则将把该项目添加为一个新数组的第一个项目。 | HTTPService | ||
RESULT_FORMAT_E4X : String = "e4x" [静态] 结果格式“e4x”指定返回的值是一个 XML 实例,此实例可以使用 ECMAScript for XML (E4X) 表达式访问。 | HTTPService | ||
RESULT_FORMAT_FLASHVARS : String = "flashvars" [静态] 结果格式“flashvars”指定返回的值是包含由 & 符号分隔的名称=值对的文本,该文本被分析为 ActionScript 对象。 | HTTPService | ||
RESULT_FORMAT_OBJECT : String = "object" [静态] 结果格式“object”指定返回的值是 XML,但按照 ActionScript 对象树分析。 | HTTPService | ||
RESULT_FORMAT_TEXT : String = "text" [静态] 结果格式“text”指定 HTTPService 结果文本应为未经处理的字符串。 | HTTPService | ||
RESULT_FORMAT_XML : String = "xml" [静态] 结果格式“xml”指定结果应作为指向父 flash.xml.XMLDocument 的第一个子项的 flash.xml.XMLNode 实例返回。 | HTTPService |
channelSet | 属性 |
channelSet:ChannelSet
[读写]
提供对服务使用的 ChannelSet 的访问。可以手动构造并分配 ChannelSet,否则将动态创建 以使用为此服务的
配置的通道。
public function get channelSet():ChannelSet
public function set channelSet(value:ChannelSet):void
contentType | 属性 |
public var contentType:String = "application/x-www-form-urlencoded"
服务请求的内容类型。默认值为 application/x-www-form-urlencoded
(同带有名称/值对的常规 HTTP POST 使用相同方式发送请求)。application/xml
将请求按 XML 发送。
destination | 属性 |
destination:String
[读写]
services-config.xml 文件中的 HTTPService 目标名称。未指定时,Flex 将使用 DefaultHTTP
目标。如果正在使用 url
属性,但希望请求通过 HTTPS 到达代理,则请指定 DefaultHTTPS
。
public function get destination():String
public function set destination(value:String):void
headers | 属性 |
public var headers:Object
发送到第三方端点的自定义 HTTP 标头。如果需要以相同名称发送多个标头,应将值指定为一个数组。
method | 属性 |
public var method:String = "GET"
发送请求的 HTTP 方法。允许的值有 GET
、POST
、HEAD
、OPTIONS
、PUT
、TRACE
和 DELETE
。将小写字母转换为大写字母。默认值为 GET
。
request | 属性 |
public var request:Object
用作 URL 参数的名称/值对的对象。如果将 contentType
属性设置为 application/xml
,则它应为一个 XML 文档。
requestTimeout | 属性 |
requestTimeout:int
[读写] 提供对已发送消息的请求超时(以秒为单位)的访问。如果值小于 0 或等于 0,则可阻止请求超时的发生。
public function get requestTimeout():int
public function set requestTimeout(value:int):void
resultFormat | 属性 |
resultFormat:String
[读写] 指示如何反序列化由 HTTP 调用返回的结果的值。该项目的值根据以下条件确定:
默认值为 object
。允许使用的值包括:
object
返回的值为 XML 并且按照 ActionScript 对象树分析。此为默认。
array
返回的值是 XML 并且按照 ActionScript 对象树分析。但是,如果顶级对象不是数组,将创建一个新数组并且将结果设置为第一个项目。如果 makeObjectsBindable 为 true,则该数组将被包装在 ArrayCollection 中。
xml
返回的值为 XML 并且作为 ActionScript XMLnode 对象中的文本 XML 返回。
flashvars
返回的值是包含由 & 符号分隔的名称=值对的文本,该文本被分析为 ActionScript 对象。
text
返回的值为文本并且未经处理。
e4x
返回的值为 XML 并且作为 ActionScript XML 对象中的文本 XML 返回,可以使用 ECMAScript for XML (E4X) 表达式进行访问。
public function get resultFormat():String
public function set resultFormat(value:String):void
rootURL | 属性 |
rootURL:String
[读写]
HTTPService 对象在计算相对 URL 时应使用的 URL。此属性仅在使用代理时使用。当 useProxy
属性设置为 false
时,将根据运行此应用程序的 SWF 的位置自动计算相对 URL。如果未明确设置,将把 rootURL
自动设置为 mx.messaging.config.LoaderConfig.url 的 URL。
public function get rootURL():String
public function set rootURL(value:String):void
url | 属性 |
url:String
[读写]
服务的位置。如果指定 url
并指定非默认目标,则 services-config.xml 文件中的目标必须允许该指定的 URL。
public function get url():String
public function set url(value:String):void
useProxy | 属性 |
useProxy:Boolean
[读写]
指定是否使用 Flex 代理服务。默认值为 false
。如果没有对通过 Flex 服务器的代理请求指定 true
,则必须确保播放器可以到达目标 URL。如果 useProxy
属性设置为 false
,则也不可以使用 services-config.xml 文件中定义的目标。
默认值为 false.
public function get useProxy():Boolean
public function set useProxy(value:Boolean):void
xmlDecode | 属性 |
public var xmlDecode:Function
ActionScript 函数,用于解码 XML 格式的服务结果。当 resultFormat
是一个对象并且设置了 xmlDecode
属性时,Flex 使用 HTTPService 返回的 XML 来创建对象。如果没有定义,则使用默认 XMLDecoder 进行此操作。
xmlDecode
属性引用的函数必须将一个 flash.xml.XMLNode 对象作为参数并应返回一个对象。返回的类型可以是任意的,但必须返回对象。返回 null
或 undefined
会导致错误。
<mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>下例显示一个 xmlDecoder 函数:
function xmlDecoder (myXML) { // Simplified decoding logic. var myObj = {}; myObj.name = myXML.firstChild.nodeValue; myObj.honorific = myXML.firstChild.attributes.honorific; return myObj; }
xmlEncode | 属性 |
public var xmlEncode:Function
ActionScript 函数,用于将服务请求按 XML 编码。当请求的 contentType
为 application/xml
并且传入的请求对象是 Object 时,Flex 将尝试使用在 xmlEncode
属性中指定的函数将其转换为 flash.xml.XMLNode 对象;如果未设置 xmlEncode
属性,则 Flex 使用默认 XMLEncoder 将对象图形转换为 flash.xml.XMLNode 对象。
xmlEncode
属性采用 Object 并且应返回 flash.xml.XMLNode 对象。在这种情况下,XMLNode 对象可以是一个 flash.xml.XML 对象(XMLNode 的子类),也可以是 flash.xml.XML 对象的第一个子项(从 <mx:XML>
标签获取的内容)。返回错误的对象类型会导致错误。下例显示指定 xmlEncode 函数的 <mx:HTTPService> 标签:
<mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>下例显示一个 xmlEncoder 函数:
function xmlEncoder (myObj) { return new XML(" "); }
HTTPService | () | 构造函数 |
public function HTTPService(rootURL:String = null, destination:String = null)
创建一个新的 HTTPService。如果希望使用相对 URL 发送服务,则可能希望指定将作为确定完整 URL 的基础的 rootURL
(例如 Application.application.url
)。
rootURL:String (default = null ) — HTTPService 在计算相对 URL 时应使用的 URL。 | |
destination:String (default = null ) — service-config.xml 文件中的 HTTPService 目标名称。 |
disconnect | () | 方法 |
public function disconnect():void
断开服务的网络连接。此方法不会等待未完成的网络操作完成。
logout | () | 方法 |
public function logout():void
将用户从目标中注销。从目标中注销适用于使用在服务器配置中指定的同一通道连接的所有对象。例如,如果通过 my-rtmp 通道连接并且使用 RPC 组件之一注销,则通过 my-rtmp 连接的所有对象都将被注销。
send | () | 方法 |
public function send(parameters:Object = null):AsyncToken
执行 HTTPService 请求。参数是可选的;但如果指定参数,所指定的值应该是包含名称/值对的 Object 或 XML 对象(取决于 contentType
)。
参数
parameters:Object (default = null ) — 包含名称-值对的 Object,或 XML 对象,具体取决于服务请求的内容类型。 |
AsyncToken —
表示异步完成标记的对象。该对象与 result 或 fault 事件的 token 属性中的对象相同。
|
setCredentials | () | 方法 |
public function setCredentials(username:String, password:String, charset:String = null):void
为服务访问的目标设置凭据。凭据适用于通过相同 ChannelSet 连接的所有服务。请注意,使用代理连接到远程目标的服务将需要改为调用 setRemoteCredentials()
方法。
参数
username:String — 目标的用户名。 | |
password:String — 目标的密码。 | |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。其它受支持的字符集仅有“UTF-8”。 |
setRemoteCredentials | () | 方法 |
public function setRemoteCredentials(remoteUsername:String, remotePassword:String, charset:String = null):void
在访问 HTTP URL 时对用户进行身份验证的用户名和密码。这些作为 HTTP 身份验证标头的一部分从代理传递到端点。如果 useProxy
属性设置为 false,则忽略此属性。
参数
remoteUsername:String — 传递给远程端点的用户名。 | |
remotePassword:String — 传递给远程端点的密码。 | |
charset:String (default = null ) — 对远程凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。其它受支持的字符集仅有“UTF-8”。 |
fault | 事件 |
mx.rpc.events.FaultEvent
mx.rpc.events.FaultEvent.FAULT
当 HTTPService 调用失败时调度。
FAULT 事件类型。事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| true,通过关联标记的 responder.fault 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
fault
| 包含导致此事件原因的详细信息的 Fault 对象。 |
message
| 与此事件相关联的 Message。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
token
| 表示方法调用的标记。用于异步完成标记模式。 |
invoke | 事件 |
mx.rpc.events.InvokeEvent
mx.rpc.events.InvokeEvent.INVOKE
只要在通道尝试发送消息前没有引发错误,当调用 HTTPService 调用时将触发 invoke 事件。
INVOKE 事件类型。事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
token
| 表示对方法单独调用的标记。用于异步完成标记模式。 |
cancelable
| true |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
message
| 与此事件关联的请求 Message。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
result | 事件 |
mx.rpc.events.ResultEvent
mx.rpc.events.ResultEvent.RESULT
当 HTTPService 调用成功返回时调度。
RESULT 事件类型。事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| true,通过关联标记的 responder.result 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
message
| 与此事件相关联的 Message。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
result
| RPC 调用返回的结果。 |
token
| 表示对方法单独调用的标记。用于异步完成标记模式。 |
CONTENT_TYPE_FORM | 常量 |
public static const CONTENT_TYPE_FORM:String = "application/x-www-form-urlencoded"
指示由 HTTP 服务发送的数据按 application/x-www-form-urlencoded 进行编码。
CONTENT_TYPE_XML | 常量 |
public static const CONTENT_TYPE_XML:String = "application/xml"
指示由 HTTP 服务发送的数据按 application/xml 进行编码。
DEFAULT_DESTINATION_HTTP | 常量 |
public static const DEFAULT_DESTINATION_HTTP:String = "DefaultHTTP"
指示 HTTPService 对象使用 DefaultHTTP 目标。
DEFAULT_DESTINATION_HTTPS | 常量 |
public static const DEFAULT_DESTINATION_HTTPS:String = "DefaultHTTPS"
指示 HTTPService 对象使用 DefaultHTTPS 目标。
ERROR_DECODING | 常量 |
public static const ERROR_DECODING:String = "Client.CouldNotDecode"
指示无法将 XML 格式的结果分析为 XML 实例或解码为对象。
ERROR_ENCODING | 常量 |
public static const ERROR_ENCODING:String = "Client.CouldNotEncode"
指示输入参数无法按 XML 编码。
ERROR_URL_REQUIRED | 常量 |
public static const ERROR_URL_REQUIRED:String = "Client.URLRequired"
指示 useProxy 属性设置为 false 但没有提供 url。
RESULT_FORMAT_ARRAY | 常量 |
public static const RESULT_FORMAT_ARRAY:String = "array"
结果格式“array”与“object”相似,但是其返回的值始终为数组;这样,如果从结果格式“object”返回的结果尚不是数组,则将把该项目添加为一个新数组的第一个项目。
RESULT_FORMAT_E4X | 常量 |
public static const RESULT_FORMAT_E4X:String = "e4x"
结果格式“e4x”指定返回的值是一个 XML 实例,此实例可以使用 ECMAScript for XML (E4X) 表达式访问。
RESULT_FORMAT_FLASHVARS | 常量 |
public static const RESULT_FORMAT_FLASHVARS:String = "flashvars"
结果格式“flashvars”指定返回的值是包含由 & 符号分隔的名称=值对的文本,该文本被分析为 ActionScript 对象。
RESULT_FORMAT_OBJECT | 常量 |
public static const RESULT_FORMAT_OBJECT:String = "object"
结果格式“object”指定返回的值是 XML,但按照 ActionScript 对象树分析。此为默认。
RESULT_FORMAT_TEXT | 常量 |
public static const RESULT_FORMAT_TEXT:String = "text"
结果格式“text”指定 HTTPService 结果文本应为未经处理的字符串。
RESULT_FORMAT_XML | 常量 |
public static const RESULT_FORMAT_XML:String = "xml"
结果格式“xml”指定结果应作为指向父 flash.xml.XMLDocument 的第一个子项的 flash.xml.XMLNode 实例返回。