首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

REST 式样 Web 服务请求

2013-07-08 
REST 样式 Web 服务请求REST 样式 Web 服务使用 HTTP 方法动词指定基本动作,并使用 URL 变量指定动作详细

REST 样式 Web 服务请求

REST 样式 Web 服务使用 HTTP 方法动词指定基本动作,并使用 URL 变量指定动作详细信息。例如,请求获得某个项目的数据时可以使用 GET 动词和 URL 变量指定方法名称和项目 ID。生成的 URL 字符串可能是:

http://service.example.com/?method=getItem&id=d3452

?

要使用 ActionScript 访问 REST 样式 Web 服务,您可以使用 URLRequest、URLVariables 和 URLLoader 类。在 AIR 应用程序内的 JavaScript 代码中,您还可以使用 XMLHttpRequest。

在 ActionScript 中编程 REST 样式 Web 服务调用,通常包括下列步骤:

    创建 URLRequest 对象。

    针对请求对象设置服务 URL 和 HTTP 方法动词。

    创建 URLVariables 对象。

    将服务调用参数设置为变量对象的动态属性。

    将变量对象分配给请求对象的数据属性。

    使用 URLLoader 对象将调用发送到服务。

    处理由 URLLoader 调度的import flash.events.Event; import flash.events.ErrorEvent; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; private var requestor:URLLoader = new URLLoader(); public function restServiceCall():void { //Create the HTTP request object var request:URLRequest = new URLRequest( "http://service.example.com/" ); request.method = URLRequestMethod.GET; //Add the URL variables var variables:URLVariables = new URLVariables(); variables.method = "test.echo"; variables.api_key = "123456ABC"; variables.message = "Able was I, ere I saw Elba."; request.data = variables; //Initiate the transaction requestor = new URLLoader(); requestor.addEventListener( Event.COMPLETE, httpRequestComplete ); requestor.addEventListener( IOErrorEvent.IOERROR, httpRequestError ); requestor.addEventListener( SecurityErrorEvent.SECURITY_ERROR, httpRequestError ); requestor.load( request ); } private function httpRequestComplete( event:Event ):void { trace( event.target.data ); } private function httpRequestError( error:ErrorEvent ):void{ trace( "An error occured: " + error.message ); }

    ?

    在 AIR 应用程序内的 JavaScript 中,您可以使用 XMLHttpRequest 对象提出相同请求:

    <html> <head><title>RESTful web service request</title> <script type="text/javascript">  function makeRequest() {     var requestDisplay = document.getElementById( "request" );     var resultDisplay  = document.getElementById( "result" );          //Create a conveninece object to hold the call properties     var request = {};     request.URL = "http://service.example.com/";     request.method = "test.echo";     request.HTTPmethod = "GET";     request.parameters = {};     request.parameters.api_key = "ABCDEF123";     request.parameters.message = "Able was I ere I saw Elba.";     var requestURL = makeURL( request );     xmlhttp = new XMLHttpRequest();     xmlhttp.open( request.HTTPmethod, requestURL, true);     xmlhttp.onreadystatechange = function() {         if (xmlhttp.readyState == 4) {             resultDisplay.innerHTML = xmlhttp.responseText;         }     }     xmlhttp.send(null);          requestDisplay.innerHTML = requestURL; } //Convert the request object into a properly formatted URL function makeURL( request ) {     var url = request.URL + "?method=" + escape( request.method );     for( var property in request.parameters )     {         url += "&" + property + "=" + escape( request.parameters[property] );     }          return url; } </script> </head> <body onload="makeRequest()"> <h1>Request:</h1> <div id="request"></div> <h1>Result:</h1> <div id="result"></div> </body> </html>

    ?

热点排行