c#.net 实现短网址的简单方法
短网址,现在很流行了,本文为大家介绍用c#.net实现短网址的方法,有兴趣的朋友,不妨参考下。
短网址,也被叫做网址缩短、网址压缩选装。
这里我们用一个例子来说明其原理吧,假如您带了一包东西去超市购物,进超市前把东西塞到超市的储物柜,然后拿到一个号码牌,您进超市就不用再背一大包东西了,只需要拿着一个小小的号码牌,出来时再把号码牌还回去,把您的背包拿出来,是一个道理。
实现起来很简单,无非就是接收一个URL,然后分配一个号码,当有人读取这个号码时,我们再把对应的URL调出来并重定向,就完事了。
所以表其实很简单,简单到只需要两个字段,一个自增ID,一个URL地址。
提交一个URL,得到的URL就类似:http://9520.me/10086
拿到的自增ID是一个10进制的数字,而我们看到的大多数短网址后面的参数肯定不是全数字的,而是带了字母的,毕竟10进制表示的话,数据量上来后还是会显得有点长,那我们就可以把字母也用上吧,大小写字母加数字,相当于是62进制,那我们还需要再实现一个进制转化的方法来对ID进行压缩,进制转换其实也是很简单的东西。
简单示例:
static string Number = "056656454";
/// <summary>
/// 压缩ID标识
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 还原ID标识
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
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;
}
c#.net 实现短网址的简单方法的更多相关文章
- 向android模拟器打电话发短信的简单方法
在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这 ...
- php生成短网址的思路与方法
生成短网址的思路以及使用php生成短网址的实现方法. 生成短网址的思路:如果把短网址还原了,你知道是个什么样子的吗?比如:http://www.jbxue.com/sitejs-17300-1.htm ...
- Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)
用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下 ...
- php 两种短网址生成方法
使用以下PHP代码可以生成唯一的6位的短网址. 代码如下: <?php //生成短网址方法1 function shortUrl1($url) { if (empty($url)) { retu ...
- 【转】C# URL短地址压缩算法及短网址原理解析
这篇文章主要介绍了C# URL短地址压缩算法及短网址原理解析,本文重点给出了算法代码,需要的朋友可以参考下 短网址应用已经在全国各大微博上开始流行了起来.例如QQ微博的url.cn,新郎的sinaur ...
- PHP实现长网址与短网址
原文地址:http://www.qqdeveloper.com/detail/29/1.html 什么是长链接.短链接 顾名思义,长链接就是一个很长的链接:短链接就是一个很短的链接.长链接可以生成短链 ...
- XYIXY.COM短网址在线生成,快速、稳定、永久有效,免费开放网址缩短API接口。
在PHP中使用API 要在PHP程序中使用API,您必须通过file_get_contents或cURL发送GET请求:两者都是可靠的方法,您可以直接复制下面的代码. <?php /**** S ...
- 如何做系列(4)-微博URL短网址生成算法原理(java版、php版实现实例)
短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...
- Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode
Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ...
随机推荐
- YbtOJ#912-神秘语言【结论,欧拉定理】
正题 题目链接:http://www.ybtoj.com.cn/problem/912 题目大意 给出\(L,R\),求有多少长度在\([L,R]\)之间的字符串满足依次取出所有偶数位置的放在最前面后 ...
- Jmeter 压力测试学习8--断言
断言成功是不会显示的,失败会有提示. 登录断言 一.添加断言 登录->添加->断言->响应断言 二.执行,查看断言 登录配置的都是正确的用户名跟密码 如果响应断言中内容改为:&quo ...
- MySQL技术专题(X)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)
前提背景 MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQ ...
- SPA测试
1.生产端:环境准备为了进行SPA测试,在生产数据库中创建了SPA测试专用用户,避免与其他用户相互混淆与可能产生的误操作. CREATE USER SPA IDENTIFIED BY SPA DEFA ...
- windows中抓包命令,以及保存为多个文件的方法
本文主要介绍windows中抓包命令,以及保存为多个文件的方法 说一说保存为多个文件存储数据包这个问题的由来,一般如果长时间抓包,有可能需要等上几个小时,因为这个时候抓包的内容都是存放在内存中的,几个 ...
- 洛谷4455 [CQOI2018]社交网络 (有向图矩阵树定理)(学习笔记)
sro_ptx_orz qwq算是一个套路的记录 对于一个有向图来说 如果你要求一个外向生成树的话,那么如果存在一个\(u\rightarrow v\)的边 那么\(a[u][v]--,a[v][v] ...
- 洛谷luogu3957跳房子(单调队列优化)
QwQ被普及组的题折磨的死去活来. 硬是卡线段树,没卡过QwQ oi生涯,第一道正经的单调队列dp题 进入正题 题目大意: 其中\(n \le 500000\) 看到这个题的第一感觉就是二分金币数 很 ...
- springcloud整合config组件
config组件 config组件支持两种配置文件获取方式springcould搭建的微服务的配置文件的获取方式有两种.它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中或者本地 ...
- Spring 5 中函数式web开发中的swagger文档
Spring 5 中一个非常重要的更新就是增加了响应式web开发WebFlux,并且推荐使用函数式风格(RouterFunction和 HandlerFunction)来开发WebFlux.对于之前主 ...
- 零基础学习C语言入门必备知识
今天跟大家一起从零学C语言: 1. C语言简介 1.1 C语言发展史 C语言是一种广泛使用的面向过程的计算机程序设计语言,既适合于系统程序设计,又适合于应用程序设计.C语言的发展历程大致如图1-1所示 ...