TrackBack 的實現原理 及 asp.net代碼

來源:互聯網
上載者:User
  作為所謂的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;
            }
        }  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.