此方法是借用u6.gg平台,實現長鏈接對短鏈接的轉碼。廢話不多說,直接上代碼。
1 /// <summary> 2 /// 獲取url的返回值(短網址接口) 3 /// </summary> 4 /// <param name="url">eg:http://m.weather.com.cn/atad/101010100.html </param> 5 public string GetInfo(string url) 6 { 7 string strBuff = ""; 8 url = "http://api.u6.gg/api.php?url=" + url; 9 //這里一定要進行UrlEncode轉碼 10 url = System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8); 11 Uri httpURL = new Uri(url); 12 ///HttpWebRequest類繼承於WebRequest,並沒有自己的構造函數,需通過WebRequest的Creat方法 建立,並進行強制的類型轉換 13 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL); 14 ///通過HttpWebRequest的GetResponse()方法建立HttpWebResponse,強制類型轉換 15 HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse(); 16 ///GetResponseStream()方法獲取HTTP響應的數據流,並嘗試取得URL中所指定的網頁內容 17 ///若成功取得網頁的內容,則以System.IO.Stream形式返回,若失敗則產生ProtoclViolationException錯 誤。在此正確的做法應將以下的代碼放到一個try塊中處理。這里簡單處理 18 Stream respStream = httpResp.GetResponseStream(); 19 ///返回的內容是Stream形式的,所以可以利用StreamReader類獲取GetResponseStream的內容,並以 20 //StreamReader類的Read方法依次讀取網頁源程序代碼每一行的內容,直至行尾(讀取的編碼格式:UTF8) 21 StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8); 22 strBuff = respStreamReader.ReadToEnd(); 23 return strBuff; 24 }
返回的字符串就是轉換成的短鏈接