ASP.NET通過第三方網(wǎng)站Bitly實(shí)現(xiàn)短鏈接地址程序
發(fā)微博很久了,或許是我之前沒注意,現(xiàn)在特別關(guān)注那個(gè)微博中的圖片鏈接和URL鏈接,總給我看不懂但是又那么短的感覺,反正不是我上傳的地址,其實(shí)這里使用一個(gè)短鏈接服務(wù)功能,這里拿出來曬曬。

這里看看是指向淘寶的一個(gè)商品頁(yè)面,鏈接地址是這樣的 ,但是現(xiàn)在在微博中變成了紅圈表名的那個(gè)樣子,似乎看不懂了,而且你點(diǎn)擊之后還是到你原有的頁(yè)面。這里就是使用了短鏈接程序服務(wù),包括圖片等等都是這樣,可以縮短url長(zhǎng)度。
Bitly 是世界上最流行的短鏈接服務(wù),而且已經(jīng)免費(fèi)開放所有功能。點(diǎn)擊訪問官網(wǎng) Bitly.com
下面介紹服務(wù)使用步驟:
(1) 到官網(wǎng)注冊(cè)獲取相應(yīng)的APIKey

(2)到Setting頁(yè)面獲得Key值

因?yàn)橹挥凶?cè)之后才能使用它相應(yīng)的服務(wù),所以這里先注冊(cè)一個(gè)用戶
(3)下載Bitly服務(wù)包
下載地址如下: http://urlshortenerhelper.codeplex.com/
(4)新建一個(gè)項(xiàng)目,我這里使用VS2010 MVC3項(xiàng)目
新建之后要在VS工程中添加外部引用包,也就是安裝UrlShortener ,剛才下載的文件
(5)在Package Manager Console 命令中安裝UrlShortener ,我這里安裝的是UrlShortener.0.9.1

輸入Install-Package UrlShortener 命令之后 顯示下面的表示安裝成功!
(6) 到上面之后一切OK,接下來就是編碼的事情,代碼非常簡(jiǎn)單。
安裝成功之后,項(xiàng)目工程中會(huì)有一個(gè)文件包 packages ,里面就是一些dll文件,然后會(huì)添加兩個(gè)dll到工程中。

(7)代碼展示
URL轉(zhuǎn)化之前必須設(shè)置用戶以及剛才獲得Key值
UrlShortener.Settings.UserName = "qingyuan"; UrlShortener.Settings.ApiKey = "R_0daabdbac0fd2b58f097da9f5a1f7917";
應(yīng)用代碼如下
<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>本機(jī)地址:</label>
<span>
<a href="@localhost">@localhost</a>
</span>
</div><br /></p>
展示效果圖如下

這里就達(dá)到了短鏈接的效果,相對(duì)之前的URL短了很多,而且url已經(jīng)混淆了。
下面介紹幾個(gè)遇到的問題:
(1) 不設(shè)置UserName或ApiKey 會(huì)出現(xiàn)如下問題

(2) 果如ApiKey的值不正確會(huì)出現(xiàn)如下問題

更新獲取短鏈接算法參考代碼
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字符串長(zhǎng)度"+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;
}
以上這篇ASP.NET通過第三方網(wǎng)站Bitly實(shí)現(xiàn)短鏈接地址程序就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET WebAPI連接數(shù)據(jù)庫(kù)的方法
這篇文章主要為大家詳細(xì)介紹了ASP.NET WebAPI連接數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
VS2012/VS2013本地發(fā)布網(wǎng)站問題集錦(HTTP錯(cuò)誤代碼)
這篇文章主要為大家詳細(xì)介紹了VS2012/VS2013本地發(fā)布網(wǎng)站遇到問題,HTTP錯(cuò)誤代碼的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
客戶端用JavaScript填充DropDownList控件 服務(wù)器端讀不到值
今天遇到一個(gè)奇怪的問題,某一頁(yè)面需要使用三級(jí)級(jí)聯(lián)下拉列表框。為提高用戶體驗(yàn),采用jQuery的cascadingDropDown插件調(diào)用后臺(tái)Web Services來實(shí)現(xiàn)ajax填充。2010-09-09
ASP.NET簡(jiǎn)單獲取服務(wù)端和客戶端計(jì)算機(jī)名稱的方法
這篇文章主要介紹了ASP.NET簡(jiǎn)單獲取服務(wù)端和客戶端計(jì)算機(jī)名稱的方法,涉及asp.net獲取服務(wù)器端計(jì)算機(jī)名以及根據(jù)IP獲取客戶端主機(jī)名的相關(guān)技巧,需要的朋友可以參考下2016-08-08
Prism區(qū)域管理器IRegionManager用法介紹
這篇文章介紹了Prism區(qū)域管理器IRegionManager用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
.NET的動(dòng)態(tài)編譯與WS服務(wù)調(diào)用詳解
這篇文章介紹了.NET的動(dòng)態(tài)編譯與WS服務(wù)調(diào)用詳解,有需要的朋友可以參考一下,希望對(duì)你有所幫助2013-07-07
asp.net中執(zhí)行存儲(chǔ)數(shù)據(jù)操作時(shí)數(shù)據(jù)被自動(dòng)截取的一種情況
asp.net中執(zhí)行存儲(chǔ)數(shù)據(jù)操作時(shí)數(shù)據(jù)被自動(dòng)截取的一種情況...2006-09-09
大型門戶網(wǎng)站實(shí)現(xiàn)的十四大技術(shù)小結(jié)
參考下大型門戶網(wǎng)站的技術(shù),大家可以盡量的備份好服務(wù)器。2010-10-10

