ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

很牛逼的短链接,我们一起来晒晒短链接程序

2021-06-03 14:56:38  阅读:102  来源: 互联网

标签:string 晒晒 url 程序 qingyuan com 链接 UrlShortener


很牛逼的短链接,我们一起来晒晒短链接程序

2011-11-24 17:55  贺臣  阅读(21805)  评论(62)  编辑  收藏

发微博很久了,或许是我之前没注意,现在特别关注那个微博中的图片链接和URL链接,总给我看不懂但是又那么短的感觉,反正不是我上传的地址,其实这里使用一个短链接服务功能,这里拿出来晒晒。

  

这里看看是指向淘宝的一个商品页面,链接地址是这样的 ,但是现在在微博中变成了红圈表名的那个样子,似乎看不懂了,而且你点击之后还是到你原有的页面。这里就是使用了短链接程序服务,包括图片等等都是这样,可以缩短url长度。 

Bitly 是世界上最流行的短链接服务,而且已经免费开放所有功能。点击访问官网 Bitly.com 

 

下面介绍服务使用步骤:

(1) 到官网注册获取相应的APIKey

 

 

(2)到Setting页面获得Key值

 

因为只有注册之后才能使用它相应的服务,所以这里先注册一个用户

 

(3)下载Bitly服务包

下载地址如下: http://urlshortenerhelper.codeplex.com/ 

 

(3)新建一个项目,我这里使用VS2010 MVC3项目

    新建之后要在VS工程中添加外部引用包,也就是安装UrlShortener ,刚才下载的文件

 

(4) 在Package Manager Console 命令中安装UrlShortener ,我这里安装的是UrlShortener.0.9.1

 

 输入Install-Package UrlShortener 命令之后 显示下面的表示安装成功!

 

(5) 到上面之后一切OK,接下来就是编码的事情,代码非常简单。

安装成功之后,项目工程中会有一个文件包 packages ,里面就是一些dll文件,然后会添加两个dll到工程中。

 

 

(6)代码展示

URL转化之前必须设置用户以及刚才获得Key值

UrlShortener.Settings.UserName = "qingyuan";

UrlShortener.Settings.ApiKey =  "R_0daabdbac0fd2b58f097da9f5a1f7917";

 

应用代码如下

<p>
   @{
       string url = UrlShortener.Shorten("http://www.cnblogs.com/qingyuan/");
       string image = UrlShortener.Shorten("http://images.cnblogs.com/cnblogs_com/qingyuan/242728/r_qingyuan.jpg");
       string localhost = UrlShortener.Shorten("http://127.0.0.1/index.html");
    }

    <div>
        <label>显示:</label>
        <span>
            <a href="@url">@url</a>
        </span>
    </div><br />
    <div>
        <label>图片短链接:</label>
        <span>
            <img src="@image" />
        </span>
    </div><br />
    <div>
        <label>本机地址:</label>
        <span>
            <a href="@localhost">@localhost</a>
        </span>
    </div><br /></p> 

 

 展示效果图如下

 

这里就达到了短链接的效果,相对之前的URL短了很多,而且url已经混淆了。

 

下面介绍几个遇到的问题:

(1) 不设置UserName或ApiKey 会出现如下问题

 

 (2) 果如ApiKey的值不正确会出现如下问题

 

 

更新获取短链接算法参考代码

static void Main(string[] args)
        {
            string url = "http://www.cnblogs.com/qingyuan/asdf/asdf/11/24/UrlShortener.html";
            string[] results = ShortUrl(url);
            foreach (string item in results)
            {
                System.Console.WriteLine(item);
            }
        }

        public static string[] ShortUrl(string url)
        {
            string[] chars = new string[] {"a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" ,
              "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" ,
              "u" , "v" , "w" , "x" , "y" , "z" , "0" , "1" , "2" , "3" , "4" , "5" ,
              "6" , "7" , "8" , "9" , "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" ,
              "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" ,
              "U" , "V" , "W" , "X" , "Y" , "Z"};
            string value = UserMd5(url);
            System.Console.WriteLine("MD5加密之后字符串: "+value+"\n字符串长度"+value.Length);
            string[] results = new string[value.Length / 8];
            for (int i = 0; i < value.Length/8; i++)
            {
                string tempResult = value.Substring(i*8,8);
                long lHexLong = 0x3FFFFFFF & long.Parse(tempResult);
                string outchar = "";
                for (int j = 0; j < 6; j++)
                {
                    long index = 0x0000003D & lHexLong;
                    outchar += chars[(int)index];
                    lHexLong = lHexLong >> 5;
                }
                results[i] = outchar;
            }
            return results;
        }

        static string UserMd5(string str)
        {
            string key = "qingyuan";
            string cl = str+key;
            string pwd = "";
            MD5 md5 = MD5.Create();
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
            for (int i = 0; i < s.Length; i++)
            {
                pwd = pwd + s[i];
            }
            return pwd;

        } 

很久不写文章,这篇到此为止,希望能够给大家帮助,有问题大家讨论! 

标签:string,晒晒,url,程序,qingyuan,com,链接,UrlShortener
来源: https://blog.51cto.com/u_14071312/2850500

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有