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

使用 URL 缩短服务 -Cligs

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2010年9月21日

CC (Attr 3U)

4分钟阅读

viewsIcon

26780

这是另一篇关于 URL 缩短服务的文章。今天我们将讨论 Cligs,它是网络上流行的缩短服务之一。

这篇文章也有阿拉伯语版本,请在此处阅读:这里
在此处阅读有关 URL 缩短服务的更多信息:这里

目录

  • 概述
  • 引言
  • 描述
  • API
    • 缩短 URL
    • 展开 URL
  • 下一步
  • 历史

概述

这是另一篇关于 URL 缩短服务的文章。今天,我们将讨论 Cligs,它是网络上流行的缩短服务之一。

做好准备!

引言

今天我们讨论另一个流行的缩短服务;它是Cligs,最流行的缩短服务之一,它免费提供许多高级功能。

废话少说,让我们开始讨论。

2009 年 12 月,Cligs 被Mister Wong(一个非常好的书签服务)收购。

描述

Cligs 如何帮助您?Cligs 为您提供了许多功能,包括以下几点:

  • 缩短 URL(注册用户和非注册用户):您将获得一个不超过 20 个字符的短 URL(Tweetburner 是 22 个,is.gd 仅 18 个),包括域名 http://cli.gs
  • URL 管理(仅限注册用户):它允许您管理您的短 URL,编辑它们,并根据需要删除它们。
  • 实时分析(仅限注册用户):您的链接被点击了多少次,以及何时被点击。
  • URL 预览(注册用户和非注册用户):在打开 URL 之前进行预览。保护您免受垃圾邮件和不良网站的侵害。

API

Cligs 提供了一个非常好的API,具有许多优点。我们要讨论的第一个优点是它的简单性。API 非常简单;它只有两个函数,一个用于缩短 URL,另一个用于展开短 URL(展开 URL 意味着从短 URL 获取长 URL)。

此 API 的另一个优点是它允许您缩短 URL,无论您是注册用户还是非注册用户。当然,注册用户需要获取 API 密钥才能将 API 调用链接到他们的帐户,以便他们可以管理由 API 生成的链接并查看分析。

缩短 URL

第一个函数用于缩短 URL,名为 `create`。此函数具有以下地址:

http://cli.gs/api/v1/cligs/create?url={1}&title={2}&key={3}&appid={4}

API 仍处于 1.0 版本,这就是为什么您在地址中看到 'v1'。此函数接受四个参数,其中第一个是必需的,其他参数用于身份验证。

  1. url:必需。要缩短的 URL。
  2. title:可选。仅用于已验证的调用。将在您的控制面板中显示的短 URL 的名称(用于管理您的 URL)。
  3. key:可选。如果您是注册用户并希望将 API 调用链接到您的帐户,则需要在此处输入您的 API 密钥。
  4. appid:可选。如果您使用了 API 密钥,那么您必须提供用于生成此 API 调用的应用程序名称(帮助用户了解链接的来源)。

那么如何使用这个函数呢?如果这是一个匿名调用(即,未提供身份验证详细信息),只需调用该函数,并在其单个必需参数中提供长 URL。

如果您需要将此调用链接到特定帐户,则需要一个 API 密钥。用户可以通过登录其 Cligs 帐户、选择“我的 API 密钥”,然后点击“创建新 API 密钥”(如果还没有)来获取该密钥。最后一步生成一个 API 密钥,该密钥的长度不足 32 个字符(参见图 1)。

Figure 1 - Creating API Keys, Cligs

获取 API 密钥后,您可以将其与您的应用程序名称一起作为 `appid` 参数推送到该函数。

那么 `title` 参数呢?对于注册用户,他们可以访问他们的 `clig` 列表(参见图 2),查看他们缩短的 URL 以及他们在 URL 上方选择的标题。

现在,开始编码!以下函数使用 Cligs API 来缩短 URL。它接受三个参数:长 URL、API 密钥和应用程序名称。如果 API 密钥为 *null*(VB.NET 中为 *Nothing*),则该调用将匿名进行;否则,将使用 API 密钥和应用程序名称。

// C#

string Shorten(string url, string key, string app)
{
    url = Uri.EscapeUriString(url);
    string reqUri =
        String.Format(@"http://cli.gs/api/v1/cligs/create?url={0}", url);
    if (key != null)
        reqUri += "&key=" + key + "&appid=" + app;

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(reqUri);
    req.Timeout = 5000;

    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, _
                 ByVal key As String, ByVal app As String) As String

    url = Uri.EscapeUriString(url)
    Dim reqUri As String = _
        String.Format("http://cli.gs/api/v1/cligs/create?url={0}", url)
    If key Is Nothing Then
        reqUri &= "&key=" & key & "&appid=" & app
    End If

    Dim req As WebRequest = WebRequest.Create(reqUri)
    req.Timeout = 5000

    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

展开 URL

我们今天讨论的另一个函数是 `expand` 函数,它用于从短 URL 获取长 URL(例如,将短 URL http://cli.gs/p1hUnW 展开为 http://JustLikeAMagic.com)。此函数非常简单,其地址如下:

http://cli.gs/api/v1/cligs/expand?clig={1}

此函数仅接受一个参数,即要展开的 `clig`(短 URL)。`clig` 可以通过以下三种方式之一指定:

  • clig ID,例如 p1hUnW
  • 原始 URL,例如 http://cli.gs/p1hUnW
  • 编码后的 URL,例如 http%3A%2F%2Fcli.gs%2Fp1hUnW
您可以在此处阅读有关 URL 编码的更多信息:这里

现在是时候写代码了!以下函数接受一个 clig 并返回其原始 URL:

// C#

string Expand(string url)
{
    url = Uri.EscapeUriString(url);
    string reqUri = String.Format(@"http://cli.gs/api/v1/cligs/expand?clig={0}", url);

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(reqUri);
    req.Timeout = 5000;

    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 Expand(ByVal url As String) As String

    url = Uri.EscapeUriString(url)
    Dim reqUri As String = _
        String.Format("http://cli.gs/api/v1/cligs/expand?clig={0}", url)

    Dim req As WebRequest = WebRequest.Create(reqUri)
    req.Timeout = 5000

    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

下一步

一些关于 URL 缩短服务的其他文章可在此处找到:这里

历史

  • 2010 年 9 月 21 日:首次发布
© . All rights reserved.