前言
最近想自己做一个Blog程序玩一下,自己做的博客程序,当然要能够和各种博客的客户端要能够连接起来才行。
想要连接当然就是要按照标准来做,目前流行的API主要有:
MetablogAPI (博客园就是了):http://www.xmlrpc.com/metaWeblogApi
MovableTypeAPI
这些API大同小异,主要功能莫非,取得Blog信息,取得Category,取得Post,新增Post,修改Post。
实现
关于XML-RPC:http://www.xmlrpc.com/
实现的工具:XML-RPC.NET(http://www.xml-rpc.net)
方法步骤:
第一步:下载 Version 2.1.0 has been released:xml-rpc.net.2.1.0.zip
第二步:解压,注意interfaces文件夹(里面提供了IMetablogAPI ,IBloggerAPI 等接口)和 bin文件夹,(里面提供了CookComputing.XmlRpcV2.dll,V2表示.net 2.0)
第三步:引入CookComputing.XmlRpcV2.dll,实现服务
第3.1步:有哪些不同的方法可以实现一个XML - RPC服务器?使用XML -RPC.NET有三种方式实施一个XML - RPC服务器:
1.在IIS中使用从XmlRpcService派生的类。
2.使用NET Remoting的一个XML - RPC的格式化。
3.在IIS中使用。NET Remoting的一个XML - RPC格式化。第3.2步:我如何在IIS中实现XML - RPC服务器?类XmlRpcService实现一个HTTP处理程序,公开IHttpHandler和IRequiresSessionState接口。当XmlRpcService的派生类是通过web.config文件中配置的,将传入XML- RPC请求给ASP.NET正在运行的处理程序。
public class MetablogAPI : XmlRpcService, IMetaWeblog
{
#region IMetaWeblog Members
public object editPost(string postid, string username, string password, CookComputing.MetaWeblog.Post post, bool publish)
{
cmsgames3.Blog_Post blog_Post = db.Blog_Posts.Single(p => p.postid == int.Parse(postid));
Post2Blog_Post(username, password, ref blog_Post, post, publish);
db.SubmitChanges();
return true;
}
}
如果此代码保存到一个名为MetablogAPI.cs服务,可以使用下面的命令行:
csc /r:system.web.dll /r:CookComputing.XmlRpcV2.dll /target:library MetablogAPI .cs
这将建立一个DLL程序集称为cmsgames3.dll。
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="MetablogAPI.aspx" type="cmsgames3.MetablogAPI,cmsgames3"/>
</httpHandlers>
</system.web>
</configuration>
HTTP动词指定一个通配符。 XmlRpcService实现同时处理的XML - RPC方法,XML - RPC方法调用的POST和GET返回一个服务自动生成的文档。(前面两句的原话是The HTTP verb is specified by a wildcard. The implementation in XmlRpcService handles both POST for XML-RPC method calls and GET to return an automatically generated documentation on the Service. )XmlRpcService将拒绝任何其他要求与相应的HTTP响应的代码。
URL中使用的扩展名是.REM。这是因为ASP.NET的默认配置,处理一些扩展,包括权限,ASPX,和ASMX比较方便。可以使用其他的扩展,例如.XMLRPC将是一个明显的选择,但这需要通过IIS管理单元在不断变化的虚拟目录里配置。
一旦服务被配置为一个快速检查,可以通过在URL指向您的浏览器和验证的自动生成的帮助页面显示。
这些方法是必须的:
MetablogAPI支持下面的方法:
- blogger.deletePost
- blogger.getTemplate(可选)
- blogger.getUserInfo
- blogger.getUsersBlogs
- metaWeblog.editPost
- metaWeblog.getCategories
- metaWeblog.getPost
- metaWeblog.getRecentPosts
- metaWeblog.newMediaObject(上传图片用的)
- metaWeblog.newPost
以上内容,翻译加转载,在此贴出出处:http://hi.baidu.com/natame/blog/item/cf6755775322431db151b947.html,不确保翻译准确,不确定代码是否有错,很抱歉,本人不懂,有问题的请找原作者,谢谢