DotText实现支持自动发现服务接口

新入手的Atmel-ICE产品说明 【一句话自我介绍】 我是Atmel最新推出的功能强大的调试编程工具,适用于Atmel ARM® Cortex®-M的Atmel SAM和AVR® 系列芯片。 【我支持的软件】 完美支持Atmel Studio 6.2以上版本直接支持ICC8AVR以上版本支持烧录ICCAVR、CVAVR、IAR等生成的HEX文件 【我支持的器件】 支持AVR 32-bit MCUs的JTA 阅读详情

目标:使用Live Writer添加Dottext Blog帐号时支持自动发现webservice接口。实现后的添加只要一个步骤:输入blog地址,例如http://blogs.impx.net/dragonimp和blog帐号密码,点下一步自动配置service的api,完成即可。

实现:根据自动发现接口协议,实现对Dottext blog的service api的自动发现。

1、首先在default.aspx中增加link:

<link id="RSDLink" title="rsd" type="application/rsd+xml" rel="edituri" runat="Server"/>

2、在DottextMasterPage.cs中增加地址设置

RSDLink.Attributes.Add("href", CurrentBlog.FullyQualifiedUrl + "rsd.aspx");

3、在web.config中增加rsd.aspx的处理引擎

<HttpHandler pattern="/rsd/.aspx$" type="Dottext.Common.Syndication.RsdHandler, Dottext.Common"    handlerType="Direct" />

4、实现RsdHandler类和RsdWriter(采用Rss的写法并继承原有的BaseSyndicationHandler类)

/*
using something needed...
Description:Rsd handler for DotText metaweblog api
Author:dragonimp 2009.1.11
http://www.impx.net http://blogs.impx.net/dragonimp

*/

namespace Dottext.Common.Syndication
{
    class RsdWriter : System.Xml.XmlTextWriter
    {
        private StringWriter _sw = null;
        protected BlogConfig config;

        public RsdWriter(): this(new StringWriter())
        {
        }

        public RsdWriter(System.IO.Stream stream, Encoding encoding) : base(stream, encoding)
        {
        }

        public RsdWriter(StringWriter sw): base(sw)
        {
            _sw = sw;
            config = Dottext.Framework.Configuration.Config.CurrentBlog();
        }

        public StringWriter StringWriter
        {
            get
            {
                Build();
                return _sw;
            }
        }

        public string GetXml
        {
            get { return this.StringWriter.ToString(); }
        }

        private void Build()
        {
            //this.Formatting = System.Xml.Formatting.Indented;
           // this.WriteStartDocument();
            this.WriteStartElement("rsd");
            this.WriteAttributeString("version", "1.0");
            this.WriteStartElement("servie");
            this.WriteElementString("engineName","DotText Rsd service 1.0 by dragonimp");
            //this.WriteEndElement();//enginename
            this.WriteElementString("engineLink", config.FullyQualifiedUrl + "rsd.aspx");
            //this.WriteEndElement();//enginelink
            this.WriteElementString("homePageLink", config.FullyQualifiedUrl);
            //this.WriteEndElement();//homepagelinke           
            this.WriteStartElement("apis");
            this.WriteStartElement("api");
            this.WriteAttributeString("name", "MetaWeblog");
            this.WriteAttributeString("preferred", "true");
            this.WriteAttributeString("apiLink", config.FullyQualifiedUrl + @"services/metablogapi.aspx");
            this.WriteAttributeString("blogID", config.UserName);
            this.WriteEndElement();//api
            this.WriteEndElement();//apis
            this.WriteEndElement();//service
            this.WriteEndElement();//rsd
           //  this.WriteEndDocument();//
        }
    }

    class RsdHandler : Dottext.Framework.Syndication.BaseSyndicationHandler
    {
        public RsdHandler() { }
        private string key = "IndividualMainFeed_Rsd:FQU{0}";

        protected override string CacheKey()
        {
            return string.Format(key,CurrentBlog.FullyQualifiedUrl);
        }
        protected override void Cache(CachedFeed feed)
        {
            Context.Cache.Insert(CacheKey(), feed, null, DateTime.Now.AddSeconds((double)Dottext.Common.Data.CacheTime.Medium), TimeSpan.Zero);
        }
        protected override CachedFeed BuildFeed()
        {
            this.key += "BlogID_Rsd" + CurrentBlog.BlogID.ToString();
            CachedFeed feed = new CachedFeed();
            feed.LastModified = this.ConvertLastUpdatedDate(CurrentBlog.LastUpdated);

            RsdWriter rsdwriter = new RsdWriter();
            feed.Xml=rsdwriter.GetXml;
            return feed;
        }
    }
}

参考文章:

http://www.tiray.net/post/Really-Simple-Discovery.aspx
http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html

Cadence virtuos安装教程 本文详细介绍了在Ubuntu 18.04系统上安装Cadence Virtuoso IC617及MMSIM的完整流程。主要内容包括:1)系统环境准备(安装JDK及相关依赖包);2)通过创建软链接和修改系统文件实现RedHat环境兼容;3)共享目录文件操作与分卷压缩包合并解压技巧;4)使用InstallScape工具的安装步骤详解,包括权限处理和配置选项。特别提醒需注意系统兼容性处理(如创建redhat-release文件)和分卷压缩包的特殊解压方法(cat合并)。整个安装过程涉及大量Linux命令操作,需特 阅读详情

相关推荐

【全开源】废品回收垃圾回收小程序APP公众号源码PHP版本

废品回收小程序是一款基于移动端的应用程序,它提供了废品分类、预约回收、积分兑换等多种功能,帮助用户更方便地进行废品回收,同时还能兑换到一些小礼品或优惠券,让回收变得更加有趣和有价值。随着环保意识的逐渐提高,废品回收成为了我们日常生活中的重要一环。但是,如何更方便、高效地进行废品回收呢?今天,我要向大家推荐一款超级实用的工具——废品回收小程序!废品回收小程序不仅让我们的生活更加便捷,还让我们为环保事业贡献了一份力量。让我们一起行动起来,用废品回收小程序为我们的家园添一抹绿色吧!

2401_84593614的博客 1359

基于.Net6简单实现自动发现api

基于.Net6简单实现自动发现api

weixin_42581530的博客 954

Windows用户必看:如何在WSL中完美安装CosyVoice的ttsfrd依赖(附避坑指南)

本文为Windows用户提供了在WSL中部署CosyVoice语音合成模型并解决其关键依赖ttsfrd的完整指南。文章详细介绍了从WSL环境配置、Python环境搭建、模型下载到ttsfrd深度安装与问题排查的全流程,并针对WSL特有的文件系统、权限和GPU支持问题提供了解决方案,帮助开发者高效攻克部署难题。

dell8的博客 248

Prometheus 如何自动发现 Kubernetes Metrics 接口 -consul自动发现

Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。之前我们通过 Prometheus 实现监控,当新增一个 Target 时,需要变更服务器上的配置文件,即使使用 file_sd_configs 配置,也需要登录服务器修改对应 Json 文件,会非常麻烦。不过 Prometheus 官方支持多种自动服务发现的类型,其中就支持 Consul。

yuezhilangniao的博客 890

Android 15网络子系统深度解析(一):ConnectivityService与网络管理框架全解析

深入剖析Android 15核心网络服务ConnectivityService的架构设计、NetworkAgent/Factory机制、网络状态管理、以及WiFi/移动网络切换的完整流程

Cheson的专栏 1749

RKDevTool解包和打包(Windows)

我们将修改后的打包工具存放在了RKDevTool_Release_v2.92软件压缩包的rockdev目录下,可以搭配RKDevTool的解包功能使用。双击板卡主芯片对应的bat文件,开始进行打包。红框中的内容是我们的打包工具及辅助打包的可执行文件,Image目录下存放了我们的分区镜像, package-file是分区与分区镜像文件的对应关系。将从网盘获取的Update.zip镜像解压成.img格式并重命名为update.img,也可以直接使用SDK生成的update.img镜像。

tianpu2320959696的博客 3348

5分钟就能实现的API监控,你有什么理由不做呢?

API深度影响着你的应用 今天的数字应用世界其实是一个以API为中心的世界,我们只是没有意识到这些API的重要性。比如在电子商务交易、社交媒体等对交互高度依赖的领域,可以说API决定了应用的质量一点也不为过。 以京东为例,用户的每一次操作背后都关联着一系列API,比如购买商品时选择不同的规格、颜色等信息,这些API可能基于分布式服务位于不同地方,因此增加了更多的复杂性。也因为这些复杂的网络和应用架构,让这些API中的任何一个都可能不可用或出现某种性能问题。 (京东商城整体架构示例,图片来自互联

seeryang的博客 2888

Quantum Espresso Hands-On实战训练(四)——PDOS计算与轨道分析

本文详细介绍了Quantum Espresso中PDOS计算与轨道分析的实战方法,重点解析了PDOS在材料电子结构研究中的核心价值,包括原子级分辨率、轨道级解析和自旋极化分析。通过具体案例和操作步骤,帮助读者掌握从输入文件准备到结果解读的全流程,并提供了高级分析技巧和疑难问题解决方案。

weixin_29211309的博客 504

API监测是什么?能够解决应用数据安全的哪些问题?

安华金和应用系统安全审计系统(AAS)是一款基于网络流量通讯协议分析和解析技术的数据安全产品。具有应用接口自动发现、敏感数据识别、应用账号发现、流式计算引擎及高速策略匹配引擎等核心技术。可帮助用户全面掌握敏感数据使用状况,及时防控敏感数据行为风险,针对数据泄露事件进行有效溯源,快速梳理业务应用及接口资产。

qq_39565979的博客 2223

《QGIS快速入门与应用基础》021:插件仓库 URL 获取与添加

详细介绍了在QGIS中添加第三方插件仓库的方法。首先强调必须从官方推荐、开源社区等可靠渠道获取插件仓库URL以确保安全性,并列出了4类可信获取渠道。文章分步骤讲解了URL添加流程,包括打开插件管理器设置面板、填写仓库信息、刷新缓存验证等操作。针对常见问题如URL格式错误、连接失败等提供了具体解决方案。最后总结指出,成功添加第三方仓库后即可直接搜索安装各类专业插件,从而扩展QGIS功能边界。全文注重实操指导,特别适合需要安装行业专用插件的QGIS用户参考。

LuckyHanMo的博客 465

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7585

Apifox:API 接口自动化测试完全指南

这是一篇关于 Apifox 的接口自动化测试教程。相信你已经对 Apifox 有所了解:“集 API 文档、API 调试、API Mock、API 自动化测试,更先进的 API 设计/开发/测试工具”。笔者是后端开发,因此这篇教程关注的是。

2301_77645750的博客 1458

Python学习第32天:Web前端入门

本文介绍了Web前端开发三大核心技术:HTML、CSS和JavaScript。首先概述了HTML的发展历程和HTML5新特性,详细讲解了常用HTML标签如文本、列表、链接、图像、表格、表单等。其次介绍了CSS的基础语法、选择器、颜色字体设置、盒子模型和布局定位方法。最后简要提及JavaScript为网页添加交互功能的作用。文章为Python开发者提供了前端技术的基础知识,帮助理解网页的结构、样式和行为实现原理。

tigerhhzz的博客 1911

DotText源码阅读

[转载] DotText源码阅读(7) --Pingback/TrackBack from: http://blog.youkuaiyun.com/shanhe/archive/2006/05/17/741904.aspx 博客这种服务的区别于论坛和所谓文集网站,很大程度上我认为是由于pingback/trackback的存在,使得博客这种自媒体有可以延展加入SNS的要素。所以分析博客程序,我们需要...

weixin_30237281的博客 125

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

优化DOTTEXT之四:TRACKBACK的流程和改进设想

这一节我们来看一下DOTTEXT的TRACKBACK流程。 首先我们来看一下是怎么发送TRACKBACK的:入口是Dottext.Framework.EntryHandling.Process 检查文章内容中是否已经包含了远程网页的链接,只有包含才能继续 从远程链接的网页下载HTML代码,如果没得到,说明不是合法链接,要返回 在得到的HTML代码中检查是否已...

weixin_30642561的博客 138

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

DotText源码阅读(7) --Pingback/TrackBack

博客这种服务的区别于论坛和所谓文集网站,很大程度上我认为是由于pingback/trackback的存在,使得博客这种自媒体有可以延展加入SNS的要素。所以分析博客程序,我们需要了解这种协议以及协议的实施细节。 在dottext的源代码中,在发表作品中,我们可以看到有pingback协议的支持,同时在web services的实现中,有trackback协议的实现。至于什么是pio...

weixin_30421525的博客 89

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[转载] DotText源码阅读(7) --Pingback/TrackBack

from: http://blog.youkuaiyun.com/shanhe/archive/2006/05/17/741904.aspx 博客这种服务的区别于论坛和所谓文集网站,很大程度上我认为是由于pingback/trackback的存在,使得博客这种自媒体有可以延展加入SNS的要素。所以分析博客程序,我们需要了解这种协议以及协议的实施细节。 在dottext的源代码中,在发表作品中...

weixin_30635053的博客 339

DotText发布照片的问题解决了

   这个Blog上次我测试的时候发现照片上传的功能不能用,现在改好了。 开始的时候出现这样的错误提示: 异常详细信息: System.IO.DirectoryNotFoundException: 未找到路径“D:\”的一部分。 开始我以为是因为空间不支持System.IO,(我申请的空间支持ISO,文件读写都正常),所以我打算去网上找一个ASP.NET的文件上传组件,可是找来找去没有找到...

weixin_33809981的博客 96

dotText源码阅读(5)--URLreWrite和Handler

dotText源码阅读(5)--URLreWrite和Handler Dottext需要映射全部不存在的文件到blog应用程序,实际上是需要IIS对于该应用下的问不进行处理,而是交给dottext程序处理,而dottext则利用一系列的handler来进行配置,对应不同的文件类型,或者匹配特定的文件,实现整个blog的URL 重写的。 ...

weixin_30362801的博客 76

offbye的Dottext 1.0 Beta 2汉化美化版发布了!欢迎下载

本版本是在Dottext 1.0 Beta2博客园汉化版的基础上做成的,感谢Dudu及所有支持Dottext的朋友给我提供了一个这么好的博客程序。本版本是站在巨人的肩膀上完成的,本人只是在前人的基础上做了一些完善。 相对与Dottext 1.0 Beta 2汉化版本版本有以下特点:1、汉化了Blog的管理界面,现在基本上都是中文的了!2、美化了整个系统,改为Dvbbs动网论坛的绿色风格,比原来漂亮...

love19820823 97

配置Discuz(asp.net版)和DotText(cnblogs版)

头派下来一项类似开发门户网站的任务,其中涉及到blog模块、论坛、在线聊天、新闻、视频播客等等(看着需求里面好像以后还要增加网上购物功能),我们开发组的人数用一只手掰指头还要剩一个手指呢,汗啊~没办法,硬着头皮上吧。新闻系统下了荒野的开源新闻,试了一下感觉他的功能太多了,决定用freetext自己做一个;聊天室的感觉没什么难度,暂不考虑;视频插件倒是可以开发,不过用别人的应该...

deform0032的博客 180

urlrewriter--XP下IIS不能添加扩展名映射的BUG(.*)

这两天在家想装DOTTEXT,按照这里提供的下载和安装步骤,一步步下来,由于家里机器是XP,终于到了添加扩展名那步,发现最后的确定总是disable的,难道XP的IIS不支持?,如图于是GOOGLE,SERCH,在优快云上也发现不少一样的问题,终于在一个帖子里找到答案了http://support.microsoft.com/default.aspx?scid=kb%3BEN-...

weixin_30674525的博客 75

对dotText死机又有新发现

打开blog时又出错了,这次显示的页面如下 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。 管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。 事件日志中的内容事件类型: 警告事件来源: W...

weixin_34050427的博客 137
上一篇: blFetionMsg-支持VBSCRIPT编写飞信机器人
下一篇: 360正在扼杀中国共享软件
dragonimp
博客等级 码龄24年 3粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值