此方法是借用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 }
返回的字符串就是转换成的短链接