コード例 #1
0
ファイル: ShortenURL.cs プロジェクト: chcg/snip2codeNET
        /// <summary>
        /// Request template for URL
        /// </summary>
        /// <param name="eService"></param>
        /// <returns></returns>
        private static string GetRequestTemplate(ShortURLProvider eService)
        {
            string strRequest = string.Empty;

            switch (eService)
            {
            case ShortURLProvider.Isgd:
                strRequest = "http://is.gd/api.php?longurl={0}";
                break;

            case ShortURLProvider.Bitly:
                strRequest = "http://bit.ly/api?url={0}";;
                break;

            case ShortURLProvider.Tinyurl:
                strRequest = "http://tinyurl.com/api-create.php?url={0}";
                break;

            case ShortURLProvider.Trim:
                strRequest = "http://tr.im/api/trim_url.xml?url={0}";
                break;

            default:
                break;
            }

            return(strRequest);
        }
コード例 #2
0
        /// <summary>
        /// try to use different services to shorten the given url
        /// </summary>
        /// <param name="url"></param>
        /// <param name="eService"></param>
        /// <returns></returns>
        public static string DoShortenURL(string url, ShortURLProvider eService)
        {
            // return empty strings if not valid  
            if (!IsValidURL(url))
                return string.Empty;

            string requestUrl = string.Format(GetRequestTemplate(eService), url);
            WebRequest request = HttpWebRequest.Create(requestUrl);
            request.Proxy = null;
            string strResult = null;
            try
            {
                using (Stream responseStream = request.GetResponse().GetResponseStream())
                {
                    StreamReader reader = new StreamReader(responseStream, Encoding.ASCII);
                    strResult = reader.ReadToEnd();
                    if (!IsValidURL(strResult))
                        return string.Empty;
                }
            }
            catch (Exception)
            {
                strResult = url;
            }

            // if converted is longer than original, return original  
            if (strResult.Length > url.Length)
                strResult = url;

            //if the previous service didn't work, try Tr.im:
            if (strResult.CompareTo(url) == 0)
                strResult = GetShortURLbyXML(url);

            return strResult;
        }
コード例 #3
0
ファイル: ShortenURL.cs プロジェクト: chcg/snip2codeNET
        /// <summary>
        /// try to use different services to shorten the given url
        /// </summary>
        /// <param name="url"></param>
        /// <param name="eService"></param>
        /// <returns></returns>
        public static string DoShortenURL(string url, ShortURLProvider eService)
        {
            // return empty strings if not valid
            if (!IsValidURL(url))
            {
                return(string.Empty);
            }

            string     requestUrl = string.Format(GetRequestTemplate(eService), url);
            WebRequest request    = HttpWebRequest.Create(requestUrl);

            request.Proxy = null;
            string strResult = null;

            try
            {
                using (Stream responseStream = request.GetResponse().GetResponseStream())
                {
                    StreamReader reader = new StreamReader(responseStream, Encoding.ASCII);
                    strResult = reader.ReadToEnd();
                    if (!IsValidURL(strResult))
                    {
                        return(string.Empty);
                    }
                }
            }
            catch (Exception)
            {
                strResult = url;
            }

            // if converted is longer than original, return original
            if (strResult.Length > url.Length)
            {
                strResult = url;
            }

            //if the previous service didn't work, try Tr.im:
            if (strResult.CompareTo(url) == 0)
            {
                strResult = GetShortURLbyXML(url);
            }

            return(strResult);
        }
コード例 #4
0
 /* Request template for URL */
 private static string GetRequestTemplate(ShortURLProvider eService)
 {
     string strRequest = null;
     switch (eService)
     {
         case ShortURLProvider.Isgd:
             strRequest = "http://is.gd/api.php?longurl={0}";
             break;
         case ShortURLProvider.Bitly:
             strRequest = "http://bit.ly/api?url={0}"; ;
             break;
         case ShortURLProvider.Tinyurl:
             strRequest = "http://tinyurl.com/api-create.php?url={0}";
             break;
         default:
             break;
     }
     return strRequest;
 }
コード例 #5
0
    //public static string randomizeShortURLProvider()
    //{
    //    string[] providers = {"Tinyurl", "Bitly", "Isgd"};
    //     Random rnd = new Random();
    //    string random = string.Empty;
    //    for (int i = 0; i <= 3; i++)
    //    {
    //         random = providers[rnd.Next(0, 3)].ToString();
    //    }
    //     return random;
    //}
    public static string ShortenURL(string strUrl, ShortURLProvider eService)
    {
        // return empty strings if not valid
        if (!IsValidURL(strUrl))
        {
            return "";
        }

        string requestUrl = string.Format(GetRequestTemplate(eService), strUrl);
        WebRequest request = HttpWebRequest.Create(requestUrl);
        request.Proxy = null;
        string strResult = null;
        try
        {
            using (Stream responseStream = request.GetResponse().GetResponseStream())
            {
                StreamReader reader = new StreamReader(responseStream, Encoding.ASCII);
                strResult = reader.ReadToEnd();
                if (!IsValidURL(strResult))
                {
                    WebException w = new WebException(strResult);

                    throw w;
                }
            }
        }
        catch (Exception)
        {
            return strUrl; // eat it and return original url
        }

        // if converted is longer than original, return original
        if (strResult.Length > strUrl.Length)
            strResult = strUrl;

        return strResult;
    }