【翻译加转载】自己开发Blog博客程序:关于MetaWeblogAPI 的实现

2 篇文章 0 订阅
1 篇文章 0 订阅
 

 

前言

        最近想自己做一个Blog程序玩一下,自己做的博客程序,当然要能够和各种博客的客户端要能够连接起来才行。

想要连接当然就是要按照标准来做,目前流行的API主要有:

MetablogAPI (博客园就是了):http://www.xmlrpc.com/metaWeblogApi

Blogger API

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正在运行的处理程序。
第四步:实现服务
         XmlRpcService是来自添加的自定义应用程序的服务功能。派生类中包含一个或多个公共方法,代表所需的XML- RPC方法。例如,将实施的SumAndDifference像这样:
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。

第五步:配置服务
      该服务已被放置在一个虚拟目录,在目录是XMLRPC的情况下,有一个子目录叫做bin。创建一个名为web.config的文件夹,当中的configuraton文件包含以下信息:
<configuration>
   <system.web> 
   <httpHandlers>
   <add verb="*" path="MetablogAPI.aspx" type="cmsgames3.MetablogAPI,cmsgames3"/>
</httpHandlers>
   </system.web>
   </configuration>
当一个HTTP请求到达这个URL中的虚拟根目录,指定该服务应该的调用。
配置文件中最后的部分指定URL,如果是SumAndDiff.rem类,SumAndDifference的处理程序将被调用。请注意,程序集限定名的类是用来使ASP.NET知道从哪个程序集加载类的。

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,不确保翻译准确,不确定代码是否有错,很抱歉,本人不懂,有问题的请找原作者,谢谢大笑

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值