发微博很久了,或许是我之前没注意,现在特别关注那个微博中的图片链接和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;

}

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

收集到发现啦!

很牛逼的短链接,我们一起来晒晒短链接程序(转)相关推荐

  1. 你以为有白金卡就很牛逼?错!

    近段有个朋友办了一张平安银行的白金卡,额度5万元,然后他高兴得不得了,还到处炫耀,以为带个"白金"字就很牛逼,其实不然,表面上看,白金卡虽然高大上,其实也只是一种卡级而已. 所以今 ...

  2. IDEA 有个很牛逼的功能

    IDEA 有个很牛逼的功能,那就是后缀补全(不是自动补全),很多人竟然不知道这个操作,还在手动敲代码. 这个功能可以使用代码补全来模板式地补全语句,如遍历循环语句(for.foreach).使用 St ...

  3. 不推荐别的了,IDEA 自带的数据库工具就很牛逼!

    MySQL 等数据库客户端软件市面上非常多了,别的就不介绍了, 其实 IntelliJ IDEA 自带的数据库工具就很牛逼,不信你继续往下看. 本文以 IntelliJ IDEA/ Mac 版本作为演 ...

  4. 几张表格怎么联动_那种很牛逼的多图表联动,究竟是怎么做出来的?

    原标题:那种很牛逼的多图表联动,究竟是怎么做出来的? VIP学员从网上看到一张很牛逼的动态图表,只要选择月份,左边的圆环图和右边的柱形图都会随着变化,感觉很神奇,这种究竟是怎么做出来的呢? 其实,做这 ...

  5. 世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?

    来自公众号:五分钟学算法 今天分享四个代码量很少,但很牛逼很经典的算法或项目案例. 1.no code 项目地址: https://github.com/kelseyhightower/nocode ...

  6. Java 未死,依然很牛逼!

    很多文章都在说 Java 快被取代了,其实不然,现在 Java 还是未来主导编程语言,依然很牛逼. 今天给大家带来一套珍贵的 Java 电子书,非常全面,包括 Java 语言基础.多线程并发编程.JV ...

  7. 【福利】Java 依然很牛逼!

    很多文章都在说 Java 快被取代了,其实不然,现在 Java 还是未来主导编程语言,依然很牛逼. 今天给大家带来一套珍贵的 Java 电子书,非常全面,包括 Java 语言基础.多线程并发编程.JV ...

  8. css盒模型中margin很牛逼

    css盒子模型,说简单也简单,用的时候也有不简单的. 其中margin的值可以为负值,并且为了实现margin,忽略父级的padding.border.甚至定位.这在布局上很有用,要注意. ----- ...

  9. 国内的windows硬件检测软件算是很牛逼的吧!!!?

    这几天的实践表明,免费的,windows操作系统上硬件驱动检测软件,国内做的挺牛逼的. 虽然这些软件有些流氓,比如鲁大师,比如驱动精灵. 但是,在硬件检测方面确实挺厉害的,客官的说. 缘由: 最近在搞 ...

  10. 中国科学院计算机在职研究生怎么样,中科大在职研究生好考吗,考进中科院的人很牛逼吗?...

    很多小伙伴在进入社会之后发现仍然需要不断的提升自己,中专的升大专.大专的升本科,面对越来越大的就业压力,到了本科发现自己的学历还是不够用.中科大在职研究生好考吗,可以通过中科大对于我们普通人来说好考吗 ...

最新文章

  1. 2012 草莓音乐节 [组图]
  2. ESP8266-SDK编写的TM1668程序驱动数码管
  3. CONVERT_DATE_WITH_THRESHOLD
  4. Android动态加载技术三个关键问题详解
  5. 【转贴】大型ORACLE数据库优化设计方案
  6. 如何把一个java工程打成一个jar包(转载)
  7. java之方法的重写
  8. picturectrl控件中加载图片并显示_在 CRA 中使用 webp 图片提升加载性能
  9. mapreduce分组统计_mongodb中使用mapreduce进行分组统计
  10. mysqld已删除但仍占用空间的_活见鬼,明明删除了数据,空间却没减少
  11. 发那科机器人寄存器Ar_浅谈发那科机器人与TP参数之间的关系
  12. axure文本框添加水印_Axure如何给元件添加注释?
  13. C语言中extern的用法
  14. 《Mini-Me: An Adaptive Avatar for Mixed Reality Remote Collaboration》论文笔记
  15. 金融小白进阶记——金融加速器
  16. 双注入法/开路短路法
  17. 微信小程序:音乐项目
  18. redis基于Lettuce客户端实现读写分离
  19. python语言编写从一加到100_python学习: 如何循序渐进学习Python语言
  20. PythonStock(33)特别的巧,发现一个使用 vue 开发的股票系统应用,具备了一些基础的功能,可以拿过来直接跑起来。使用dockerfile进行构建,并跑起来

热门文章

  1. 解决手机訪问站点时总体相对屏幕缩小问题?(已解决)
  2. Android Studio调试功能使用总结
  3. python的web框架哪个最好学_2018年要学习的10大Python Web框架
  4. 01爬虫基本原理及Requests库下载
  5. 蛋疼的mocha库-promise异步测试
  6. pyplot绘图标题错误处理
  7. 23设计模式简介笔记
  8. Kattis - bela
  9. 热更新--动态加载framework
  10. asp.NET自定义服务器控件内部细节系列教程五