将 HTTP 操作自变量放入 HTTP 主体内的确切方式由使用的 serializationFilter 决定。
默认值为
注意:由于软件限制,当使用 GET 时 HTTPService 不生成用户界面友好的错误消息。
注意:Adobe 建议使用 mx.messaging.ChannelSet.logout() 方法而不是此方法。
默认值为
<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; }
<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(""); } MyObj.test MyObj.anotherTest
将 HTTP 操作自变量放入 HTTP 主体内的确切方式由使用的 serializationFilter 决定。
<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; }
<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(""); } MyObj.test MyObj.anotherTest
默认值为
可以设置属性(如 HTTPMultiService 标记上的 URL 和方法)来充当在每个单独的操作标记上设置的值的默认值。HTTPMultiService 的 URL 充当在 http 操作标记上设置的任何相对 url 的基本 url(即前缀)。每个 HTTP 操作都包含一个
可以将用于将数据放入 HTTP 请求的参数传递给指定 URL。contentType 属性指定一个 MIME 类型,此类型用于确定在网络中传输的数据格式(例如 HTTP 表单编码或 XML)。
也可以使用序列化过滤器实现自定义 resultFormat(例如 JSON)。如果没有使用基于服务器的代理服务,则只能使用 HTTP GET 或 POST 方法。如果将
注意:与 HTTPService 类不同,HTTPMultiService 类不定义
注意:与 HTTPService 一样,由于软件限制,当使用 GET 而不使用代理时,HTTPMultiService 不会生成用户友好的错误消息。
默认值为
此类的一个实例可以管理 HTTP 请求和响应的格式设置及其参数的转换。当您使用 HTTPService 或 HTTPMultiService 时,通常是在与一个服务器通信,该服务器希望数据以特定格式提供,例如,HTML 类型表单的 URL 编码值、XML 值或 JSON 等其它序列化格式。借助于 SerializationFilter,您可以自定义 HTTPService 和 HTTPMultiService 将操作的参数转换为 HTTP 请求的主体的方式,以及将响应转换为操作的返回值的方式。框架开发人员可以通过提供 SerializationFilter 的新实现来将新的序列化格式引入系统,还可以使用这些组件以及基于这些组件构建的所有框架和工具,而无需了解格式自身的详细信息。
首先,您应该扩展 SerializationFilter 并覆盖一个或多个转换方法。使用过滤器,可以将参数的有序列表转换为请求主体、修改请求主体、修改请求中使用的内容类型、修改请求中使用的实际 URL,以及将响应数据转换为在服务的结果事件中返回的结果对象。
有两种为特定 HTTPService 或 HTTPMultiService 指定 SerializationFilter 的方法。可以对服务设置 serializationFilter 属性,也可以为新的结果格式静态注册一个 SerializationFilter。如果使用此方法,则只需指定 resultFormat 即可使用预先注册的 SerializationFilter。例如,您可以首先为“json”类型注册一个 SerializationFilter,然后通过设置 resultFormat="json" 来使用此过滤器。
请注意,HTTPService 只提供直接采用请求主体的方法,因此不使用“serializeParameters”方法。
另请注意,AbstractOperation 包含“属性”映射,您可以使用它将其它属性作为服务调用的一部分存储在 ActionScript 中,以处理特定类型的反序列化。
请注意,如果您使用只采用单一对象的 sendBody 方法调用 HTTP 操作,则不使用此方法。在这种情况下,将跳过此步骤,并且仅调用 serializeBody 方法。