← all posts

Creating Tiny URLs in code

Calling TinyURL.com api from asp.net

Anyway… I needed to dynamically create short urls from the long urls which are so useful in my website www.gooffpiste.com but so cumbersome when dealing with things like twitter, so I looked round for an easy to integrate solution and choose tinyurl.com predominantly because of its simple interface and long standing reputation.

TinyURL has a really simple api which

is called by passing a the long url as a query string to

http://tinyurl.com/api-create.php?url={0} (e.g. http://tinyurl.com/api-create.php?url=www.google.com)

and

returns a link to a TinyURL in the format

http://tinyurl.com/#####.

I created a .net function which used the HttpWebRequest class to call the TinyURL api and then strip out the response.

public string getTinyURL(string longURL)
    {
        string shortUrl = "";

        try
        {
 // build TinyURL api URL
string tinyURLApiUrl
                = "
http://tinyurl.com/api-create.php?url={0}";
            tinyURLApiUrl
                = tinyURLApiUrl.Replace("{0}", longURL);

            // call the URL and get the response
HttpWebRequest request
                = (HttpWebRequest)WebRequest.Create(tinyURLApiUrl);
            WebResponse response = request.GetResponse();
            // put the response into a stream
Stream responseStream
                = request.GetResponse().GetResponseStream();
            // read the short URL from the stream
StreamReader reader
                = new StreamReader(responseStream);

            shortUrl = reader.ReadToEnd();
        }
        catch (Exception e)
        {
            // something went wrong!
        }

        return shortUrl;
    }

So call this function passing in a Long URL and it returns a corresponding TinyURL.