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

使用 URL 缩短服务 -Tweetburner (twurl)

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2010年9月21日

CC (Attr 3U)

3分钟阅读

viewsIcon

17828

这是 URL 缩短服务系列的另一篇文章。今天,我们将讨论另一个热门且易于使用的服务,它是 Tweetburner。如果您以前从未使用过它,那么现在是时候了。我们将首先讨论如何使用 Tweetburner。之后,我们将检查其 API 并学习

هذه المقالة متوفرة أيضا باللغة العربية، اقرأها هنا.
阅读更多关于 URL 缩短服务的信息此处

资源 - Elsheimy.Samples.ShortenSvcs.zip

目录

本文内容
  • 目录
  • 概述
  • 引言
  • 描述
  • API
  • 下一步

概述

这是 URL 缩短服务系列的另一篇文章。

今天,我们将讨论另一个热门且易于使用的服务,它是 Tweetburner。如果您以前从未使用过它,那么现在是时候了。

我们将首先讨论如何使用 Tweetburner。之后,我们将检查其 API 并学习如何在您的 .NET 应用程序中使用它。

引言

再次,这是有史以来最流行的 URL 缩短服务之一。

今天专门介绍 Tweetburner(称为 twurl),它是热门、简单且易于使用的缩短服务之一,您可以将其与 is.gd进行比较。

描述

当您访问 Tweetburner 网站(通过 http://tweetburner.comhttp://twurl.nl)时,您会发现它允许用户注册以获得更多功能(特别是链接分析。)但是,在撰写本文时,帐户页面因技术问题而被禁用,如果您在那里注册,则不会发生任何有趣的事情。

Tweetburner 的一个热门功能是,它允许您将链接发布到 twitter(您猜对了)和 friendfeed ,只要它们被缩短,只需在离开页面之前点击“分享此链接”即可。

不幸的是,您无法以编程方式从该共享功能中受益,但当然,您可以创建自己的例程。

缩短您的 URL 后,您将获得一个大约 22 个字符长的新短链接(在 is.gd 中为 18 个字符),并以 http://twurl.nl 为前缀。

API

实际上,Tweetburner 不会为您提供 API。相反,它为您提供了一个简单的网页(用于缩短 URL),您可以从代码中访问它并获取您的短 URL。

让我们尝试一下!浏览到我们的关键页面 http://tweetburner.com/links,然后推送您的长 URL 并单击缩短按钮。

那么,您如何通过您的 .NET 应用程序访问此页面并填写其单个字段? 让我们来了解一下! 如果您查看 API 文档页面,您可能会发现您只需要从该页面 *请求* 信息,通过包含在请求正文中的一个简单字符串 *发布* 它所需的 URL,link[url]={0}(其中 {0} 是长 URL,只需等待包含短 URL 的响应,当然前提是该函数成功。

您是否觉得 'link[url]={0}' 很奇怪? 和我一起试试这个! 浏览到我们的页面 http://tweetburner.com/links,并将其另存为 PC 中的 HTML(不是必需的,只需获取其 HTML 代码。)

当然,我们对这个神奇的文本框很感兴趣,所以向下滚动到它的定义,如下所示

<input id="link_url" name="link[url]" size="30" type="text" />

请注意,文本框的名称为 'link[url]',这就是为什么我们在请求正文中推送 'link[url]={0}'。 鉴于这些热门信息,您可以将任何数据推送到任何 Web 表单,只需获取所需的信息即可。

现在,让我们编码! 下一个函数浏览到我们的页面 http://tweetburner.com/links,推送指定的长 URL,并从服务器获取短 URL。(请记住包含 System.Net 命名空间,以便代码正常工作。)

// C#

string Short(string url)
{
    url = Uri.EscapeUriString(url);

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://tweetburner.com/links");
    req.Timeout = 5000;
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";

    byte[] buffer = System.Text.Encoding.UTF8.GetBytes("link[url]=" + url);
    req.ContentLength = buffer.Length;

    System.IO.Stream ios = req.GetRequestStream();
    ios.Write(buffer, 0, buffer.Length);

    try
    {

        using (System.IO.StreamReader reader =
            new System.IO.StreamReader(req.GetResponse().GetResponseStream()))
        {
            return reader.ReadLine();
        }
    }
    catch (WebException ex)
    {
        return ex.Message;
    }
}
' VB.NET

Function Shorten(ByVal url As String) As String
    url = Uri.EscapeUriString(url)

    Dim req As HttpWebRequest = _
        CType(WebRequest.Create("http://tweetburner.com/links"), HttpWebRequest)
    req.Timeout = 5000
    req.Method = "POST"
    req.ContentType = "application/x-www-form-urlencoded"

    Dim buffer() As Byte = _
        System.Text.Encoding.UTF8.GetBytes("link[url]=" + url)
    req.ContentLength = buffer.Length

    Dim ios As System.IO.Stream = req.GetRequestStream()
    ios.Write(buffer, 0, buffer.Length)

    Try
        Dim reader As System.IO.StreamReader = _
            New System.IO.StreamReader(req.GetResponse().GetResponseStream())

        Dim retValue As String = reader.ReadLine()

        reader.Close()

        Return retValue
    Catch ex As WebException
        Return ex.Message
    End Try
End Function

请注意,我们已指定 POST 方法,因为如果要更改服务器中的某些数据,则需要这样做。 同样值得一提的是,我们将内容类型设置为 application/x-www-form-urlencoded,因为如果要将数据推送到 Web 表单,则需要这样做(通常对于除文件上传之外的所有 Web 表单来说都是完美的。)

此外,我们在请求流中包含了所需的输入。

下一步

有关 URL 缩短服务的其他文章可在此处获得。

© . All rights reserved.