mx.rpc.http
public class HTTPService
继承HTTPService Inheritance AbstractInvoker Inheritance EventDispatcher Inheritance Object
子类 HTTPService

在 MXML 文件中使用 <mx:HTTPService> 标签代表 HTTPService 对象。当调用 HTTPService 对象的 send() 方法时,将发出对指定 URL 的 HTTP 请求,并且返回 HTTP 响应。可以选择向指定 URL 传递参数。如果没有使用基于服务器的代理服务,则只能使用 HTTP GET 或 POST 方法。如果将 useProxy 属性设置为 true 并使用基于服务器的代理服务,则还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。

注意:由于软件限制,当使用 GET 时 HTTPService 不生成用户界面友好的错误消息。

另请参见

mx.rpc.http.mxml.HTTPService


公共属性
 属性定义方
  channelSet : ChannelSet
提供对服务使用的 ChannelSet 的访问。
HTTPService
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  contentType : String = "application/x-www-form-urlencoded"
服务请求的内容类型。
HTTPService
  destination : String
services-config.xml 文件中的 HTTPService 目标名称。
HTTPService
  headers : Object
发送到第三方端点的自定义 HTTP 标头。
HTTPService
 InheritedlastResult : Object
[只读 (read-only)] 上次调用的结果。
AbstractInvoker
 InheritedmakeObjectsBindable : Boolean
当该置为 true 时,返回的匿名对象将强制成为可绑定的对象。
AbstractInvoker
  method : String = "GET"
发送请求的 HTTP 方法。
HTTPService
 Inheritedprototype : 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(rootURL:String = null, destination:String = null)
创建一个新的 HTTPService。
HTTPService
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
取消上次服务调用或具有指定 ID 的调用。
AbstractInvoker
 Inherited
clearResult(fireBindingEvent:Boolean = true):void
将 invoker 的 result 属性设置为 null。
AbstractInvoker
  
断开服务的网络连接。
HTTPService
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
将用户从目标中注销。
HTTPService
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
send(parameters:Object = null):AsyncToken
执行 HTTPService 请求。
HTTPService
  
setCredentials(username:String, password:String, charset:String = null):void
为服务访问的目标设置凭据。
HTTPService
 Inherited
设置循环操作动态属性的可用性。
Object
  
setRemoteCredentials(remoteUsername:String, remotePassword:String, charset:String = null):void
在访问 HTTP URL 时对用户进行身份验证的用户名和密码。
HTTPService
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] 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 方法。允许的值有 GETPOSTHEADOPTIONSPUTTRACEDELETE。将小写字母转换为大写字母。默认值为 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。允许使用的值包括:



实现
    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 对象作为参数并应返回一个对象。返回的类型可以是任意的,但必须返回对象。返回 nullundefined 会导致错误。

下例显示指定 xmlDecode 函数的 <mx:HTTPService> 标签:
<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 编码。当请求的 contentTypeapplication/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 — 表示异步完成标记的对象。该对象与 resultfault 事件的 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
属性 FaultEvent.type = 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
属性 InvokeEvent.type = 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
属性 ResultEvent.type = 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 实例返回。