C#如何实现url短链接地址

16:48 提问
新手:C#如何读取配置文件中的url地址?
一个客户端应用程序,怎么写配置文件,可以让程序直接读取配置文件中的url地址。这样就可以让其他人也能操作,不用直接去修改代码里面的url地址?
按赞数排序
最简单的,在解决方案资源管理器里右键添加新项,选择配置文件。在properties里找到配置文件,打开,新建一个字符串url,输入地址。
程序里用ConfigurationManager.AppSettings["url"]读取。
修改配置文件(注意是exe目录里的),就可以生效。不要重新生成程序,否则那个配置文件会被替换成默认的
添加完app.config要重启
在exe.config里添加
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐C#生成新浪微博短网址 示例源码
常用C#方法
开发语言:C#
实例大小:1.51KB
下载次数:
浏览次数:
发布时间:
实例类别:常用C#方法
发 布 人:
所需积分:2
&相关标签:
同类人气实例
实例下载地址
C#生成新浪微博短网址 示例源码
不能下载?内容有错? 点击这里报错
好例子网口号:伸出你的我的手 & 分享!
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
Copyright &
好例子网(www.haolizi.net).All Rights Reserved备案编号:冀ICP备号 石公备号(10)网站已改版,请使用新地址访问:
getwebURLandCodes 用C#实现当前网页URL地址和 源代码的获取 CSharp C#编程 238万源代码下载- www.pudn.com
&文件名称: getwebURLandCodes
& & & & &&]
&&所属分类:
&&开发工具: C#
&&文件大小: 50 KB
&&上传时间:
&&下载次数: 5
&&提 供 者:
&详细说明:用C#实现当前网页URL地址和网页源代码的获取-Web URL address and web page source code access with C#
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&c#获取当前页面的url(源代码).doc&&C#获取网页源代码.txt&&提取并保存网页源码\bin\Debug\提取并保存网页源码.exe&&..................\...\.....\提取并保存网页源码.pdb&&..................\...\.....\提取并保存网页源码.vshost.exe&&..................\...\.....\提取并保存网页源码.vshost.exe.manifest&&..................\Form1.cs&&..................\Form1.designer.cs&&..................\Form1.resx&&..................\obj\Debug\提取并保存网页源码.csproj.FileListAbsolute.txt&&..................\...\.....\提取并保存网页源码.csproj.GenerateResource.Cache&&..................\...\.....\提取并保存网页源码.exe&&..................\...\.....\提取并保存网页源码.Form1.resources&&..................\...\.....\提取并保存网页源码.pdb&&..................\...\.....\提取并保存网页源码.Properties.Resources.resources&&..................\Program.cs&&..................\...perties\AssemblyInfo.cs&&..................\..........\Resources.Designer.cs&&..................\..........\Resources.resx&&..................\..........\Settings.Designer.cs&&..................\..........\Settings.settings&&..................\提取并保存网页源码.csproj&&..................\提取并保存网页源码.sln&&..................\提取并保存网页源码.suo&&mfc获取网页源代码.doc&&提取并保存网页源码\obj\Debug\TempPE&&..................\bin\Debug&&..................\obj\Debug&&..................\bin&&..................\obj&&..................\Properties&&提取并保存网页源码
&输入关键字,在本站238万海量源码库中尽情搜索:Posts - 674,
Articles - 0,
Comments - 34
01:47 by Loull, ... 阅读,
& & &最近,项目中需要用到短网址(ShortUrl)的算法,于是在网上搜索一番,发现有C#的算法,有.Net的算法,有PHP的算法,就是没有找到Java版的短网址(ShortUrl)的算法,很是郁闷。同时还发现有不少网友在发帖求助,怎么实现Java版的短网址(ShortUrl)的算法。干脆一不做,二不休,参考了一下网上比较流行的PHP版短网址(ShortUrl)算法:
再根据自己的理解,用Java实现了该短网址(ShortUrl)的算法。(\(^o^)/YES!我还真厉害!)
先来废话一下,是在别人的帖子上看到的,主要是让大家了解一下短网址(ShortUrl)。
时下,短网址应用已经在全国各大微博上开始流行了起来。例如QQ微博的url.cn,新郎的t.cn等。
我们在新浪微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:http://t.cn/hrYnr0。为什么要这样做的,原因我想有这样几点:
1、微博限制字数为140字一条,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短网址应运而生了。
2、短网址可以在我们项目里可以很好的对开放级URL进行管理。有一部分网址可以会涵盖性、暴力、广告等信息,这样我们可以通过用户的举报,完全管理这个连接将不出现在我们的应用中,应为同样的URL通过加密算法之后,得到的地址是一样的。
3、我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策。
其实以上三点纯属个人观点,因为在我接下来的部分项目中会应用到,所以就了解了一下,下面先来看看短网址映射算法的理论(网上找到的资料):
① 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符;
② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;
③ 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;
④ 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。
很简单的理论,我们并不一定说得到的URL是唯一的,但是我们能够取出4组URL,这样几乎不会出现太大的重复。
首先,请大家了解在Java中如何用MD5来加密字符串得到32位的加密后的字符串,下面是我已经封装好的Java MD5算法:
private final static String[] hexDigits = {
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "a", "b", "c", "d", "e", "f"};
public static String byteArrayToHexString(byte[] b){
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i & b. i++){
resultSb.append(byteToHexString(b[i]));
return resultSb.toString();
private static String byteToHexString(byte b){
if (n & 0)
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
public static String MD5Encode(String origin){
String resultString = null;
resultString=new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString.trim();
resultString=byteArrayToHexString(md.digest(resultString.getBytes("UTF-8")));
}catch (Exception ex){}
return resultS
public static void main(String[] args)
String data = "sz";
System.out.println(MD5Encode(data));
public class ShortUrl {
public static void main(String[] args) {
String url = "http://www.sunchis.com";
for (String string : ShortText(url)) {
print(string);
public static String[] ShortText(String string){
String key = "XuLiang";
//自定义生成MD5加密字符串前的混合KEY
String[] chars = new String[]{
//要使用生成URL的字符
"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 hex = MD5Encode(key + string);
int hexLen = hex.length();
int subHexLen = hexLen / 8;
String[] ShortStr = new String[4];
for (int i = 0; i & subHexL i++) {
String outChars = "";
int j = i + 1;
String subHex = hex.substring(i * 8, j * 8);
long idx = Long.valueOf("3FFFFFFF", 16) & Long.valueOf(subHex, 16);
for (int k = 0; k & 6; k++) {
int index = (int) (Long.valueOf("0000003D", 16) & idx);
outChars += chars[index];
idx = idx && 5;
ShortStr[i] = outC
return ShortS
private static void print(Object messagr){
System.out.println(messagr);
下面来看看程序部分:现在可以直接使用ShortText(url)方法,可以等到下面四组值:
ShortText("http://www.sunchis.com")[0];
//得到值:Jzyqma
ShortText("http://www.sunchis.com")[1];
//得到值:QBrMzm
ShortText("http://www.sunchis.com")[2];
//得到值:bQreM3
ShortText("http://www.sunchis.com")[3];
//得到值:VNBRna
选取结果中四个值的任何一个值即可作为URL对应生成的短网址了。
一些评论:
原网址和短地址一一对应的存储在数据库中
在新浪发表一篇微博,它自己进入短网址转换模块,转换的时候就生成了一串短网址,并存入了数据库,当你在新浪微博里点击http://t.cn/h5mwx 这个网址,那么说t.cn就会自动去数据库查询对应的长网址,并让你的浏览器顺利抵达终点,所以短网址一般都会跟一个短域名,否则谁也没办法解析...比如腾讯的短网址,它的短域名可能就不是t.cn了吧...
Q:我很奇怪为什么要使用MD5来做,最简单直接的思路:建一个简单的数据表,第1列是id,自增长,第2列是原URL。这种方式也很好,完全可以搞定。请教各位,使用MD5的方法在哪些方面要优于我这个方法?
A:用这种方法很容易让竞争对手把URL库给遍历了去,但是假如我们只考虑效率,不考虑其他。C#:生成短网址 - 且行且思 - 博客园
是非成败转头空 青山依旧在 几度夕阳红 。。。
posts - 662, comments - 192, trackbacks - 2, articles - 0
/// &summary&
/// 短网址应用 ,例如QQ微博的url.cn
http://url.cn/2hytQx
/// &/summary&
/// &param name="url"&&/param&
/// &returns&&/returns&
public static string[] ShortUrl(string url)
//可以自定义生成MD5加密字符传前的混合KEY
string key = "fooo_2016";
//要使用生成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"
//对传入网址进行MD5加密
string hex = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(key + url, "md5");
string[] resUrl = new string[4];
for (int i = 0; i & 4; i++)
//把加密字符按照8位一组16进制与0x3FFFFFFF进行位与运算
int hexint = 0x3FFFFFFF & Convert.ToInt32("0x" + hex.Substring(i * 8, 8), 16);
string outChars = string.E
for (int j = 0; j & 6; j++)
//把得到的值与0x0000003D进行位与运算,取得字符数组chars索引
int index = 0x0000003D &
//把取得的字符相加
outChars += chars[index];
//每次循环按位右移5位
hexint = hexint && 5;
//把字符串存入对应索引的输出数组
resUrl[i] = outC
return resU
protected void Button1_Click(object sender, EventArgs e)
string[] Shor = ShortUrl(this.TextBox1.Text);
// Response.Write( );
//得到值fAVfui
//ShortUrl(http://www.jb51.net)[1];
//得到值3ayQry
//ShortUrl(http://www.jb51.net)[2];
//得到值UZzyUr
//ShortUrl(http://www.jb51.net)[3];
//得到值36rQZn
for (int i = 0; i & Shor.L i++)
Response.Write("&br/&" + i + "&&" + Shor[i]);

我要回帖

更多关于 短url生成 的文章

 

随机推荐