昨天看dudu老大发布的一篇文章用Windows Live Writer在博客园发布博客,里面提到了MetaWeblog这个东西,可能大家都感觉比较陌生,什么是MetaWeblog,她有什么用处,怎么使用它,这一连串的问题是不是都涌上了你的心头,我下面就替大家解答一下这些问题。
博客园是基于.Text开发的一套多用户博客系统。.Text提供两个可编程用户接口,SimpleBlogService和MetablogAPI。SimpleBlogService是一个 .net 的 web service,而MetaBlogAPI是一个XML-RPC Service。她可以让用户远程调用Blog程序提供的接口来完成一些功能,比如发布新的文章,查看最新文章的列表等。
我们如何利用MetaBlogAPI呢?我们这里要感谢Chuck Cook,他为我们准备了一个可以方便操作XML-RPC的类库。我们下面的内容就是用了XML-RPC类库。我们可以使用三种方法在客户端使用这个类库:
-
定义一个声明服务器端方法的接口,然后调用XmlRpcProxyGen去产生那个代理类。
-
手动的写一个调用服务器端方法的类(使用XML-RPC.net,和说起来一样简单)
-
使用Joe Bork写的XmlRpcProxyCodeGen类去产生代理类。我这里使用这种方法,因为它可以自己写程序动态的产生代码
那我们要怎么做呢,其实很简单。在XML-RPC.net的代码里面包含了一个简单的MetablogAPI的interface。我们来看一下他,确实很简单,下面展示的只是getRecentPosts方法:
[XmlRpcMethod("metaWeblog.getRecentPosts",
Description="Retrieves a list of the most recent existing post "
+ "using the metaWeblog API. Returns the metaWeblog struct collection.")]
Post[] getRecentPosts(
string blogid,
string username,
string password,
int numberOfPosts);
下面把它传给XmlRpcProxyCodeGen类去产生代理类:
// Create a CSharpCodeProvider, since I'd like code in C#
Microsoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider();
// Ask it for the code gen interface
System.CodeDom.Compiler.ICodeGenerator codeGen = codeProvider.CreateGenerator();
// Setup some options, with a namespace and class name
Headblender.XmlRpc.XmlRpcProxyCodeGenOptions options = new
Headblender.XmlRpc.XmlRpcProxyCodeGenOptions("Community.BlogUtils.BlogApi", "MetaWeblog", false, false);
// Generate the code for the IMetaWeblog interface
string strCode = Headblender.XmlRpc.XmlRpcProxyCodeGen.CreateCode( typeof(IMetaWeblog), codeGen, options );
// Write out the code to a file. Done!
StreamWriter tw = new StreamWriter("MetaWeblog.cs", false);
tw.Write( strCode );
tw.Close();
这样就参生了MetaWeblog.cs这个文件,这里面方的是调用服务器方法的类,动态生成,不用自己动手写的哦。给出一点代码片段,让大家看看。
[CookComputing.XmlRpc.XmlRpcMethodAttribute("metaWeblog.getRecentPosts")]
public CookComputing.MetaWeblog.Post[] getRecentPosts(
string blogid, string username, string password, int numberOfPosts)
{
object xrtTemp = null;
CookComputing.MetaWeblog.Post[] xrtReturn = null;
object[] xrtArray = new object[] {
blogid,
username,
password,
numberOfPosts};
xrtTemp = this.Invoke("getRecentPosts", xrtArray);
xrtReturn = ((CookComputing.MetaWeblog.Post[])(xrtTemp));
return xrtReturn;
}
我给出了调用远程方法的代理类,下面该怎么做你应该很明白吧,写个简易版的Windows Live Writer应该问题不大吧。可能有些朋友还是没有明白如何去指向博客园的MetaWeblogAPI,注意一下XML-RPC里面的[XmlRpcUrl()]你就会明白了。
分享到:
相关推荐
"dotnetcore实现metaweblog代理"的主题就是关于如何利用.NET Core框架来构建一个Metaweblog API的代理服务,该服务可以对博客内容进行预处理,并能够向多个博客平台分发发布。下面将详细介绍这一主题的相关知识点。 ...
下载下来,修改run.php 把用户名密码,博客地址改成你自己的。直接执行php run.php即可发布一篇博客到你的博客中。
利用Metaweblog技术的API接口同步到多个博客网站(详细)-附件资源
元博客(MetaWeblog API)是一种基于XML-RPC的协议,由Movable Type团队在2002年提出,主要用于让远程客户端与博客服务器进行交互,实现发布、编辑和删除博客文章等功能。在这个"metaweblog-demo"项目中,我们可以...
MetaWeblog.Portable是一个可移植类库,可轻松与MetaWeblogAPI进行交互。 如果您仍然被迫使用MetaWeblogAPI,请向我们表示慰问。 适用于.NET 4.5,Windows Phone 8和Windows 8.x,以及通过Mono的Android和iOS。 ...
- 支持 Metaweblog API,接口地址:http://example.com/xmlrpc ,支持通过Metaweblog API发布。(我喜欢使用mweb写markdown,直接发布) 更多功能欢迎大家自己挖掘,或者有好的意见和建议欢迎拍砖。 ## 项目概述 ...
支持metaweblog推送 内嵌undertow,无需tomcat,极速部署 资源占用少,150M左右内存即可流畅运行 支持自定义页面,内置简历页面 技术选型 后端 语言:JAVA 核心框架:JFinal 数据库:MySQL5.7 缓存层:Ehcache 全文...
Markdown、TinyMCE、KindEditor置顶/相关/随机/站外相关文章文章、页面永久链接文章草稿夹、签名档、更新提示多用户、多语言、多主题、插件MetaWeblog API 安装JDK 环境准备好之后下载最新的 Solo 包解压,进入解压...
样本判定器使用 activity ( { name : 'publish-metaWeblog' , activity : 'xmlrpc' , input : { url : "http://my.wordpress.com/xmlrpc.php" , method : 'metaWeblog.newPost' , params : [ 0 , 'username' , '...
B3LOG Solo更新说明:0.6.7 •11984 标签导出 feature •11976 目录生成插件 feature •11975 community 皮肤问题 bug skin ...MetaWeblog API 数据备份/恢复 相关阅读 同类推荐:博客系统下载
速度支持MetaWeblog API同步支持42qu.com要求 的Ubuntu $ sudo apt-get install mongodbCentOS的# install mongodb# see: http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages节点模块安装$ sudo npm ...
writeCnblog.rpcUrl: 博客园的MetaWeblog接口地址(我的博客管理 -> ,拉到最下面,有个MetaWeblog访问地址) writeCnblog.userName: 博客园的用户名 writeCnblog.blogId: 博客id(设置配置后,成功登录会自动获取)...
blog_url: https://rpc.cnblogs.com/metaweblog/testblogblog_id: "testblog"username: "zhangsan"password: "123456"blog_urlblog_url在博客后台>设置,页面最下方的MetaWeblog访问地址。blog_idblog_id就是访问...
支持metaWeblog Api(支持windows live writer等离线博客编写)WordPress站点xml文件导入功能(支持文章、附件及标签)文章标签标签功能、相关文章支持、文章归档文章markdown/富文本编辑支持、快速编辑布局布局待办事项...
支持metaWeblog Api(支持windows live writer等离线博客编写) WordPress站点xml文件导入功能(支持文章、附件及标签) 文章标签tag功能、私密文章支持、文章归档 文章markdown/富文本编辑支持、快速编辑 响应式布局...
全自动同步各种博客、微博客、社会网络(SNS)等,支持MetaWeblog接口,Twitter/饭否/嘀咕/火兔/同学/做啥/9911/新浪微博/滔滔/QZone/ChinaRen/随心微博/雷猴/滴/KaiXin001/i贴吧/51/搜狐/豆瓣/人人/若邻/占座/人间/...
Element-UI实现前一级分离博客功能具有以下功能分类管理文章管理标签管理评论管理导航管理Redis缓存好用的Simplemde Markdown编辑器myPersimmon博客分类,文章都支持自定义URL支持MetaWeblog API,接口地址: : ,...
改进Metaweblog 收取文章时Tag不区分大小写 改进XML方式下引用检查日志文件夹是否存在 评论编辑后增加了被X处理 Feed的输出增加了压缩判断 后台管理评论分页支持 修正了分类的子分类文章统计的错误 修正了一些JS错误...
iBlog开源项目是一款专为OSX操作系统设计的应用程序,它为用户提供了一种便捷的方式来在支持MetaWeblog API XML-RPC的博客平台上发布内容。MetaWeblog API是一种基于XML-RPC的协议,允许远程发布和管理博客文章,而...