Flex xml-rpc的使用(一)

 

http://jonniespratley.com/2008/10/02/adobe-flex-using-xml-rpc/

 

Adobe Flex —— Using XML-RPC

在程序员准备用Flex来创建网络应用程序或用Air来创建桌面应用程序时,经常需要更好的利用这些程序。比如说,如果你刚为SandKicker 服装建好一个产品管理器,这时老板看你已经把这么困难的任务都完成了,于是就要你为他开发另一个程序,不是为公司,而是为他自己,为他那个已经写了好几年的博客。

老板说他的博客是WordPress自托管的,听到这你的脑海里蹦出一大堆的想法:该用什么来连接WordPress?是不是可以创建一个定制的远程调用脚本以便通过amfphp来请求调用WordPress呢?不对不对,这些都要花上很长时间,ASAP,这才是老板想要的。你迅速将思绪拉回现实并告诉他你已经知道该怎么做了。

当你回到办公桌前开始搜索资料,希望能找到些用ActionScript来链接到XML-RPC服务器的东西,这时你恰好看到了由GOOGLE CODE主办的这个程序库。

然后你就下载了它并在程序中开源。然后该做些什么呢

 

配置:

·Flex 3

·WordPress

·XML-RPC

设置:

如果你还没有将xml-rpc库的源代码放入Flex程序的源文件夹,那么先把这个完成,然后你就可以快速安装这个程序库了,趁软件还没有更新。

 

 

Up and Running

安装完毕,运行

要接通并运行这个程序,我们首先要创建一个可以处理XML-RPC对象的服务变量,应用程序创建完成后还要创建一个服务变量可用的新的XML-RPC对象,设置一些结果,默认处理程序,并指定一个终点,此时我们已经知道终点是“/xmlrpc.php.

然后就要妥善处理结果,但是在创建出一个完整的多孔服务类前,我们只能用一个结果和默认处理程序来测试这些调用请求。经过观察还必须得抛出一些分量,这样我们才能进入这些请求的要求参数。

创建3个小函数后我们就有信心了。

下面就开始了

Essential Script

Create a new component called WordPressTester.mxml and add a script block with following code:

   1: import com.jonniespratley.http.rpc.xmlrpc.XMLRPCObject;           

   2: import mx.utils.Base64Encoder;

   3: import mx.utils.ArrayUtil;

   4: import mx.collections.ArrayCollection;       

   5: import mx.rpc.events.ResultEvent;

   6: import mx.rpc.events.FaultEvent;

   7: import mx.rpc.AsyncToken;

   8: import mx.controls.Alert;           

   9: 

  10: //Our data that is going to be returned

  11: [Bindable] private var returnedData:ArrayCollection;

  12: 

  13: //Our website endpoint where WordPress is installed at

  14: [Bindable] private var wordpressEndpoint:String = "http://website.com";

  15: 

  16: //Our service variable that is a xmlrpc object

  17: private var service:XMLRPCObject;

  18: 

  19: private function init():void

  20: {

  21:     //Create a new service

  22:     service = new XMLRPCObject();

  23:    

  24:     //Specify the endpoint

  25:     service.endpoint = wordpressEndpoint;

  26:    

  27:     //We know what destination we need to access

  28:     service.destination = "/xmlrpc.php";

  29:    

  30:     //Set a fault handler

  31:     service.addEventListener( FaultEvent.FAULT, onFault );

  32:    

  33:     //And set a result handler

  34:     service.addEventListener( ResultEvent.RESULT, onResult );

  35: }

  36: 

  37: /*******************************************

  38:  * wp.getUsersBlogs

  39:  * @args user_name, user_pass

  40: ********************************************/

  41: private function getUsersBlogs():void

  42: {

  43:     service.call("wp.getUsersBlogs", txt_username.text, txt_password.text)

  44: }           

  45: 

  46: /*******************************************

  47:  * blogger.getUserInfo

  48:  * @args fake app id, user_name, user_pass

  49: ********************************************/

  50: private function getUserInfo():void

  51: {           

  52:     service.call( "blogger.getUserInfo", "43243423", txt_username.text, txt_password.text );

  53: }           

  54: 

  55: /*******************************************

  56:  * blogger.getRecentPosts

  57:  * @args blog_ID, user_login, user_pass, num_posts

  58: ********************************************/

  59: private function getRecentPosts():void

  60: {   

  61:     service.call( "blogger.getRecentPosts", "43243423", txt_blogid.value,

  62:                      txt_username.text, txt_password.text, txt_count.value );           

  63:    

  64: }           

  65: 

  66:

你可能感兴趣的:(应用服务器,xml,wordpress,Flex,AIR)