作為所謂的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;
}
}