TrackBack 的实现原理 及 asp.net代码

  作为所谓的Blog三大特征之一的Trackback Ping,在网络上并没有一个真正的规范,它实际上最早是在Moveable发明并开始运用的一种技术,与另外两项被广泛认为是Blog最主要特征的RSS和Permalink相比,RSS本质上是是一种遵循W3C RDF规范的XML格式,Permalink是一种非常通用的静态地址技术,而Trackback Ping目前为止仅仅是在blog程序中得到运用,除了Moveable的一份技术规范文档外,也没有什么权威的标准,尤其在国内,众多blog程序有的支持有的不支持,有的有限支持,甚至还有因标准不一致而不能互相通信的(参见《blog is dead(blog已死)》http://blog.igooi.com/archive/2005/10/28/6716.aspx)。

  但是作为开发人员,我们不需要去讨论或者争论Trackback是不是死了、它会不会带来恶意Spam这些问题,就像垃圾邮件的存在,并不影响电子邮件的技术进步和使用一样。对于开发人员来讲,既然Trackback被认为是Blog的三大技术之一,而且blog程序的用户有这种需求,那我们在开发blog的时候,就应该包含这项技术。而且,我们应该尽可能地使我们开发的技术符合标准,或者规范,至少让它发挥作用。

  Trackback Ping是由Moveable Type发明的规范,那么在没有更权威的标准之前,我们使用这项技术,当然应该以他们的规范为准,这里是他们的Trackback技术规范文档:http://www.movabletype.org/docs/mttrackback.html

  Trackback的完整实现至少包含两个方面,其一:客户端发送Trackback Ping;其二:服务器端接收和处理Trackback Ping,并向客户端返回处理结果。然后,根据需要我们可以考虑在客户端接收或者不接收,处理或者不处理返回的信息。下面是具体的代码:

          /// 作 用:向指定的URL发送Trackback Ping,并根据服务器端返回的信息,提示用户处理情况。参数必须Server.URLEncode
        
///目标URL,也即所引用的blog所提供的引用地址
        
///我的Blog的URL
        
///我的blog站点名称
        
///当前这篇blog的标题
        
///当前这篇blog的摘要
        
/// 返回结果:字符串,以“|”分隔,第一部分为数字,0表示成功,1表示有错;第二部分是具体信息。

         public   static   int  Send( string  RemoteUrl,  string  MyBlogURL,  string  MyBlogName,  string  MyBlogTitle,  string  MyBlogExcerpt)
        
{
            
//’构造要发送的请求内容
            try
            
{
                
string strPostInfo = “title=” + MyBlogTitle;
                strPostInfo 
+= “&url=” + MyBlogURL;
                strPostInfo 
+= “&excerpt=” + MyBlogExcerpt;
                strPostInfo 
+= “&blog_name=” + MyBlogName;

                
byte[] strs = System.Text.Encoding.Default.GetBytes(strPostInfo);

                HttpWebRequest myRequest 
= (HttpWebRequest)WebRequest.Create(RemoteUrl);

                myRequest.Method 
= “POST”;
                myRequest.ContentType 
= “application/x-www-form-urlencoded”;
                myRequest.ContentLength 
= strs.Length;
                Stream newStream 
= myRequest.GetRequestStream();
                
// 发送数据
                newStream.Write(strs, 0, strs.Length);
                newStream.Close();
                
return 1;
            }

            
catch (System.Exception es)
            
{
                
return 0;
            }

        }
 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值