本来想用air写一个,但是自己实在有点懒而且还有一些优先级高一些的东西需要搞一搞,日后又怕自己忘了找不到资料
就写篇博客记录一下。
首先你的博客要支持 Blogger 或者MetaWeblog api, api的源程序
他们都是基于xmlrpc进行通信的,所以客户端也需要遵循这个协议,XMLRPC for AS3.0 在这里 .
好的 现在客户端和服务器端的准备工作都做好了,coding
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="postIt();"> <mx:Script> <![CDATA[ import com.mattism.http.xmlrpc.Connection; import com.mattism.http.xmlrpc.ConnectionImpl; import com.mattism.http.xmlrpc.util.XMLRPCDataTypes; import flash.system.Security; private var blog_url:String="http://localhost:8080/roller/roller-services/xmlrpc"; var BLOG_ID:String="blog"; var USERNAME:String="foodyi"; var PASSWORD:String="your password"; private function postIt():void { var rpc:Connection=new ConnectionImpl(blog_url); rpc.addEventListener(Event.COMPLETE,onPostComplete); rpc.addParam(" ",XMLRPCDataTypes.STRING); rpc.addParam(BLOG_ID,XMLRPCDataTypes.STRING); // Blog Id rpc.addParam(USERNAME,XMLRPCDataTypes.STRING); // Username rpc.addParam(PASSWORD,XMLRPCDataTypes.STRING); // Password rpc.addParam({title:"haha",content:"next"}, XMLRPCDataTypes.STRING); // Post contents rpc.addParam(1,XMLRPCDataTypes.BOOLEAN); // Post right away rpc.call('blogger.newPost'); } function onPostComplete(event:Event):void { trace("post OK!"); } ]]> </mx:Script> </mx:Application>
以上程序是我连接本地的apache roller. 如果需要获得返回值,需要修改XMLRPC AS3的程序,将返回值放到Event中返回。