当前位置:  编程技术>.net/c#/asp.net

c#.net 实现短网址的简单方法

    来源: 互联网  发布时间:2014-08-30

    本文导语:  短网址,现在很流行了,本文为大家介绍用c#.net实现短网址的方法,有兴趣的朋友,不妨参考下。 短网址,也被叫做网址缩短、网址压缩选装。 这里我们用一个例子来说明其原理吧,假如您带了一包东西去超市购物,进超市前...

短网址,现在很流行了,本文为大家介绍用c#.net实现短网址的方法,有兴趣的朋友,不妨参考下。

短网址,也被叫做网址缩短、网址压缩选装。

这里我们用一个例子来说明其原理吧,假如您带了一包东西去超市购物,进超市前把东西塞到超市的储物柜,然后拿到一个号码牌,您进超市就不用再背一大包东西了,只需要拿着一个小小的号码牌,出来时再把号码牌还回去,把您的背包拿出来,是一个道理。

实现起来很简单,无非就是接收一个URL,然后分配一个号码,当有人读取这个号码时,我们再把对应的URL调出来并重定向,就完事了。
所以表其实很简单,简单到只需要两个字段,一个自增ID,一个URL地址。

提交一个URL,得到的URL就类似:http://9520.me/10086

拿到的自增ID是一个10进制的数字,而我们看到的大多数短网址后面的参数肯定不是全数字的,而是带了字母的,毕竟10进制表示的话,数据量上来后还是会显得有点长,那我们就可以把字母也用上吧,大小写字母加数字,相当于是62进制,那我们还需要再实现一个进制转换的方法来对ID进行压缩,进制转换其实也是很简单的东西。

简单示例:
 

代码示例:
static string Number = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
///
/// 压缩ID标识
///
///
///
public string Short(long n) {
string result = string.Empty;
int l = Number.Length;
while (n / l >= 1) {
result = Number[(int)(n % l)] + result;
n /= l;
}
result = Number[(int)n] + result;
return result;
}
///
/// 还原ID标识
///
///
///
public long UnShort(string s) {
long result = 0;
if (s.HasValue()) {
s = s.Trim();
int l = s.Length;
int m = Number.Length;
for (int x = 0; x < l; x++) {
result += Number.IndexOf(s[l - 1 - x]) * (long)Math.Pow(m, x);
}
}
return result;
}
 

刚才的URL:http://9520.me/10086,经过压缩后就变成了:http://9520.me/2CG,少了两个字母,当然,数字越大时效果越明显。


    
 
 

您可能感兴趣的文章:

  • C#/.NET字符串加密和解密实现(AES和RSA代码举例)
  • asp.net 参数不同共用一个页面的实现方法
  • Asp.net防止重复提交的实现方法
  • ASP.NET MVC3 实现全站重定向的简单方法
  • .net中string实现无重复数字的代码一例
  • 内核源文件/net/socket.c中调用其他模块的函数,该如何实现
  • 用linux做服务器运行ASP.net网站,请问具体怎样实现??
  • asp.net session实现用户登录的疑问
  • asp.net用Zxing库实现条形码输出的具体实现
  • asp.net 实现php的md5()函数功能
  • asp.net后台弹窗怎么实现
  • c#(asp.net)实现的文件下载函数
  • asp.net后台弹窗如何实现
  • C#.NET程序添加到右键菜单的实现代码
  • .net压缩功能实现方法
  • asp.net文件分块下载的实现代码
  • vb.net实现后台发送短信的代码
  • asp.net 正则表达式匹配图片路径的实现代码
  • asp.net datalist绑定数据后可以上移下移实现示例
  • Asp.net设置GridView自适应列宽的实现代码
  • .net实现文件读写的几种常用方法
  • 正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现
  • Asp.Net、asp实现的搜索引擎网址收录检查程序
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.net类socketfactory的类成员方法: createsocket定义及介绍
  • asp.net post方法中参数取不出来的解决方法
  • java命名空间java.net类datagramsocket的类成员方法: disconnect定义及介绍
  • 重新注册asp.net 2.0的方法
  • java命名空间java.net类datagramsocket的类成员方法: close定义及介绍
  • .net后台获取html控件值的2种方法
  • java命名空间java.net接口cookiestore的类成员方法: get定义及介绍
  • c#.net防止按F5刷新页面重复提交的方法
  • java命名空间java.net类socket的类成员方法: isbound定义及介绍
  • asp.net 禁用viewstate(web.config中配置)的方法
  • java命名空间java.net类datagrampacket的类成员方法: getsocketaddress定义及介绍
  • iis支持asp.net4.0的注册命令使用方法
  • java命名空间java.net类multicastsocket的类成员方法: getinterface定义及介绍
  • ASP.NET使用Subtract方法获取两个日期之间的天数
  • java命名空间java.net类httpurlconnection的类成员方法: method定义及介绍
  • .net获取js中值的方法
  • java命名空间java.net枚举proxy.type的类成员方法: http定义及介绍
  • asp.net Control控件常用的属性与方法
  • java命名空间java.net类urisyntaxexception的类成员方法: getreason定义及介绍
  • c#(asp.net)接收存储过程返回值的方法
  • java命名空间java.net类datagramsocketimpl的类成员方法: getlocalport定义及介绍
  • asp.net 超时设置的方法介绍
  • java命名空间java.net类malformedurlexception的类成员方法: malformedurlexception定义及介绍
  • .NET版的ExtJS库 Ext.Net
  • java命名空间java.net类unknownserviceexception的类成员方法: unknownserviceexception定义及介绍
  • node.js的.net扩展 node.net
  • java命名空间java.net类authenticator的类成员方法: getrequestingscheme定义及介绍
  • 为什么输http://www.china-java.net,会自动改为http://www.china-java.net:8081?
  • java命名空间java.net类socketimpl的类成员方法: port定义及介绍
  • 各位之不知道net-snmp是否收费?我的产品中用到了net-snmp lib是否需要向什么单位或者组织付费?
  • java命名空间java.net类datagramsocketimpl的类成员方法: close定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3