65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 C# 进行 Technorati Ping

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.89/5 (7投票s)

2009 年 1 月 29 日

CPOL

3分钟阅读

viewsIcon

38381

downloadIcon

456

为您的博客 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. 初始化请求并设置其属性。
  2. 使用流将请求发送到源。
  3. 接收并读取响应。

步骤 1:初始化请求并设置其属性

  • 使用 WebRequest.Create 方法初始化新的 HttpWebRequest 对象。
  • 现在将属性分配给“POST”。
  • 根据您的 API 规范分配其他必需的参数,例如 ContentTypeContentLength 和任何其他附加参数。
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.CloseHttpWebResponse.Close 方法来关闭响应并释放连接以供重用。 没有必要同时调用 Stream.CloseHttpWebResponse.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 是什么,在哪里使用以及如何发布它的简单解释。

© . All rights reserved.