包 | mx.rpc.http |
类 | public class AbstractOperation |
继承 | AbstractOperation AbstractOperation AbstractInvoker EventDispatcher Object |
子类 | Operation |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
send(param1, param2)
方法来调用 Operation。HTTP 服务还支持 sendBody 方法,该方法使您可以直接指定 HTTP 响应的主体。如果您使用 send(param1, param2) 方法,则通常通过将操作的 argumentNames 属性与发送的参数相结合来形成该主体。这会创建一个将 argumentNames[i] 用作键,将对应的参数用作值的对象。
将 HTTP 操作自变量放入 HTTP 主体内的确切方式由使用的 serializationFilter 决定。
属性 | 由以下参数定义 | ||
---|---|---|---|
argumentNames : Array
要传递给方法调用的参数名称的有序列表。 | AbstractOperation | ||
arguments : Object
当操作被调用时传递到此操作的参数。 | AbstractOperation | ||
concurrency : String
指示如何处理对同一服务的多个调用的值。 | AbstractOperation | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
contentType : String
服务请求的内容类型。 | AbstractOperation | ||
headers : Object
发送到第三方端点的自定义 HTTP 标头。 | AbstractOperation | ||
lastResult : Object [只读]
上次调用的结果。 | AbstractInvoker | ||
makeObjectsBindable : Boolean
当该置为 true 时,返回的匿名对象将强制成为可绑定的对象。 | AbstractInvoker | ||
method : String
发送请求的 HTTP 方法。 | AbstractOperation | ||
name : String
此操作的名称。 | AbstractOperation | ||
operationManager : Function
此属性通常由框架代码设置,框架代码需要修改服务调用的行为,而不修改外部调用服务的方式。 | AbstractInvoker | ||
properties : Object
这是一个挂钩,主要供框架开发人员用来为您的操作注册用户指定的其它属性。 | AbstractOperation | ||
request : Object
用作 URL 参数的名称/值对的对象。 | AbstractOperation | ||
requestTimeout : int
提供对已发送消息的请求超时(以秒为单位)的访问。 | AbstractOperation | ||
resultElementType : Class
与 resultType 类似,用于定义由给定操作使用的 ActionScript 类,但是此属性只适用于返回多值结果(例如,Array 或 ArrayCollection (IList))的操作。 | AbstractInvoker | ||
resultFormat : String
指示如何反序列化由 HTTP 调用返回的结果的值。 | AbstractOperation | ||
resultType : Class
指定操作的可选返回类型。 | AbstractInvoker | ||
rootURL : String
HTTPService 对象在计算相对 URL 时应使用的 URL。 | AbstractOperation | ||
serializationFilter : SerializationFilter
SerializationFilter 可以控制对自变量进行格式设置的方式,以形成 HTTP 请求的内容。 | AbstractOperation | ||
service : AbstractService [只读]
提供对在其上调用此操作的服务的方便访问。 | AbstractOperation | ||
showBusyCursor : Boolean
如果为 true,在执行服务时会显示忙状态光标。 | AbstractOperation | ||
url : String
服务的位置。 | AbstractOperation | ||
useProxy : Boolean
指定是否使用 Flex 代理服务。 | AbstractOperation | ||
xmlDecode : Function
ActionScript 函数,用于解码 XML 格式的服务结果。 | AbstractOperation | ||
xmlEncode : Function
ActionScript 函数,用于将服务请求按 XML 编码。 | AbstractOperation |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建一个新的 Operation。 | AbstractOperation | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
取消上次服务调用或具有指定 ID 的调用。 | AbstractInvoker | ||
将 invoker 的 result 属性设置为 null。 | AbstractInvoker | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
执行此方法。 | AbstractOperation | ||
AbstractOperation | |||
设置循环操作动态属性的可用性。 | Object | ||
公开此挂钩可以更新 lastResult 属性。 | AbstractInvoker | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
返回 HTTP 请求头。 | AbstractOperation | ||
返回序列化过滤器。 | AbstractOperation |
argumentNames | 属性 |
public var argumentNames:Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
要传递给方法调用的参数名称的有序列表。由于参数对象是无确定排序的 hashmap,此数组可帮助将所有内容正确放置在一起。如有必要,当以标签形式使用 Operation 时由 MXML 编译器自动设置。
concurrency | 属性 |
concurrency:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示如何处理对同一服务的多个调用的值。默认值为 multiple
。允许使用的值包括:
multiple
不取消现有请求,开发人员通过谨慎管理事件流来负责确保返回数据的一致性。这是默认值。single
一次操作仅允许执行一个请求;多个请求会生成错误。last
发出请求会取消所有现有请求。
实现
public function get concurrency():String
public function set concurrency(value:String):void
contentType | 属性 |
headers | 属性 |
public var headers:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
发送到第三方端点的自定义 HTTP 标头。如果需要以相同名称发送多个标头,应将值指定为一个数组。
method | 属性 |
request | 属性 |
public var request:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
用作 URL 参数的名称/值对的对象。如果将 contentType
属性设置为 application/xml
,则它应为一个 XML 文档。
requestTimeout | 属性 |
requestTimeout:int
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
提供对已发送消息的请求超时(以秒为单位)的访问。如果在达到超时之前未从远程目标收到确认、响应或错误,则消息将在客户端上出错。如果值小于 0 或等于 0,则可阻止请求超时的发生。
实现
public function get requestTimeout():int
public function set requestTimeout(value:int):void
resultFormat | 属性 |
resultFormat:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示如何反序列化由 HTTP 调用返回的结果的值。该项目的值根据以下条件确定:
- 返回的是 XML 还是名称/值对。
- 访问结果的方式;可以将结果作为 object、text 或 XML 进行访问。
默认值为 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
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
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
serializationFilter | 属性 |
public var serializationFilter:SerializationFilter
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
SerializationFilter 可以控制对自变量进行格式设置的方式,以形成 HTTP 请求的内容。它还控制将结果转换为 ActionScript 对象的方法。可以使用此属性对其进行显式设置,也可以使用 resultFormat 属性对其进行间接设置。
showBusyCursor | 属性 |
url | 属性 |
useProxy | 属性 |
useProxy:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定是否使用 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 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
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 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
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(""); }
AbstractOperation | () | 构造函数 |
public function AbstractOperation(service:AbstractService = null, name:String = null)
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 Creates a new Operation. |
运行时版本: | Flash Player 9, AIR 1.1 |
创建一个新的 Operation。
参数service:AbstractService (default = null ) — 定义服务类型(如 HTTPMultiService、WebService 或 RemoteObject)的对象。
| |
name:String (default = null ) — 服务的名称。
|
getHeaders | () | 方法 |
getSerializationFilter | () | 方法 |
protected function getSerializationFilter():SerializationFilter
返回序列化过滤器。子类可以覆盖此方法以控制 HTTP 请求头的检索。
返回SerializationFilter — 序列化过滤器。
|
sendBody | () | 方法 |
public function sendBody(parameters:Object):mx.rpc:AsyncToken
参数
parameters:Object |
mx.rpc:AsyncToken |
Tue Jun 12 2018, 11:04 AM Z