使用 C# 进行 Technorati Ping






3.89/5 (7投票s)
为您的博客 ping technorati 的源代码。
引言
任何经常阅读或发布博客的人可能都熟悉 ping 的概念。如果你不熟悉 ping 的概念,至少也听说过吧?
Pingback(简称 ping)是一种方法,博客创作工具(例如 WordPress)通过该方法向“ping 服务器”(例如 Technorati)发送通知,告知有新的或更新的内容。 ping 通过 XML-RPC 信号发送,并允许 ping 服务器生成一个包含新材料的博客或站点列表。 这样,当浏览者访问这些站点时,他们将获得包含最新内容的博客列表。
大多数现有的博客创作工具都内置了 ping 功能。 如果您想创建博客软件,则必须自己创建 ping 功能。 使用 HTTPPost 和 C#,我已成功创建了一种使用示例控制台应用程序执行此操作的方法。 此示例使用 Technorati,但同样可以轻松地为任何具有 API 的 ping 服务站点进行配置。
背景
建议具备 C# 和进行 HttpPost 的基本知识。
Using the Code
现在您了解了什么是 ping 以及它的目的,让我们看看如何在您的代码中实现它。 获取您要通知的源的 API。 创建包含必要详细信息的 Web 请求。 在此示例中,我添加了 Content Length 和 Content Type。 一旦您分配了所有详细信息,只需发布并通过 HttpWebResponse
接收来自提供程序的响应。
它是如何工作的?
完成调用并取回响应包括三个步骤
- 初始化请求并设置其属性。
- 使用流将请求发送到源。
- 接收并读取响应。
步骤 1:初始化请求并设置其属性
- 使用
WebRequest.Create
方法初始化新的HttpWebRequest
对象。 - 现在将属性分配给“
POST
”。 - 根据您的 API 规范分配其他必需的参数,例如
ContentType
、ContentLength
和任何其他附加参数。
HttpWebRequest webReq;
webReq = (HttpWebRequest)WebRequest.Create("http://technorati.com/developers/ping");
webReq.Method = "POST";
webReq.ContentType = "text/xml";
webReq.ContentLength = strTechnoratiXML.Length;
步骤 2:使用流将请求发送到源
完成请求的初始化后,我们需要将此数据发送到源。 为此,我们需要使用返回 stream
的“GetRequestStream
”方法。 然后使用 Stream.write
发送请求。
Stream streamRequest = webReq.GetRequestStream();
ASCIIEncoding ascii=new ASCIIEncoding();
streamRequest.Write(ascii.GetBytes(strTechnoratiXML), 0, strTechnoratiXML.Length);
步骤 3:读取响应
使用 HttpWebRequest.GetResponse
方法将响应接收到 HttpWebResponse
中。 现在借助 StreamReader
将响应读取到 string
中。
完成后,您必须调用 Stream.Close
或 HttpWebResponse.Close
方法来关闭响应并释放连接以供重用。 没有必要同时调用 Stream.Close
和 HttpWebResponse.Close
,但这样做不会导致错误。
HttpWebResponse webRes;
StreamReader srResponse;
webRes = (HttpWebResponse)webReq.GetResponse();
srResponse = new StreamReader(webRes.GetResponseStream(), Encoding.ASCII);
String strResponseText = srResponse.ReadToEnd();
srResponse.Close();
结论
在您的网站中实施此代码后,您将比那些没有 pingback 功能的网站更具优势,因为您会被列在最前面!
建议使用配置文件来自定义 URL、描述和博客名称,这样您就不必将它们硬编码到您的函数中。 此外,稍作编辑,您就可以循环遍历允许您以编程方式发送 pingback 的服务列表。
历史
本文已修改,包含更多关于文章的描述,其中定义了 ping 是什么,在哪里使用以及如何发布它的简单解释。