Question

Hey I was wondering if anyone can point me to some example on how to use Bit.ly API in ASP.NET 2.0

Was it helpful?

Solution

I've done a really quick convert from an answer I found in VB.

I haven't tested this (sorry) but it may be of some help in the meantime, and I will sort it out to be a bit more C# style friendly.

public static string BitlyIt(string user, string apiKey, string strLongUrl)
{
   StringBuilder uri = new StringBuilder("http://api.bit.ly/shorten?");

   uri.Append("version=2.0.1");

   uri.Append("&format=xml");
   uri.Append("&longUrl=");
   uri.Append(HttpUtility.UrlEncode(strLongUrl));
   uri.Append("&login=");
   uri.Append(HttpUtility.UrlEncode(user));
   uri.Append("&apiKey=");
   uri.Append(HttpUtility.UrlEncode(apiKey));

   HttpWebRequest request = WebRequest.Create(uri.ToString()) as HttpWebRequest;
   request.Method = "GET";
   request.ContentType = "application/x-www-form-urlencoded";
   request.ServicePoint.Expect100Continue = false;
   request.ContentLength = 0;
   WebResponse objResponse = request.GetResponse();
   XmlDocument objXML = new XmlDocument();
   objXML.Load(objResponse.GetResponseStream());

   XmlNode nShortUrl = objXML.SelectSingleNode("//shortUrl");

   return nShortUrl.InnerText;
}

Original code taken from here - http://www.dougv.com/blog/2009/07/02/shortening-urls-with-the-bit-ly-api-via-asp-net/

OTHER TIPS

I found the answer from tim and it's pretty solid. I needed a vb.net version so converted it back from C# - I figured this may help someone. It appears the the bit.ly link has changed; not sure if the version is necessary anymore; added a little error handling in case you pass in a bad url.

Public Shared Function BitlyIt(ByVal strLongUrl As String) As String

    Dim uri As New StringBuilder("http://api.bitly.com/v3/shorten?")

    'uri.Append("version=2.0.1") 'doesnt appear to be required

    uri.Append("&format=xml")
    uri.Append("&longUrl=")
    uri.Append(HttpUtility.UrlEncode(strLongUrl))
    uri.Append("&login=")
    uri.Append(HttpUtility.UrlEncode(user))
    uri.Append("&apiKey=")
    uri.Append(HttpUtility.UrlEncode(apiKey))

    Dim request As HttpWebRequest = TryCast(WebRequest.Create(uri.ToString()), HttpWebRequest)
    request.Method = "GET"
    request.ContentType = "application/x-www-form-urlencoded"
    request.ServicePoint.Expect100Continue = False
    request.ContentLength = 0

    Dim objResponse As WebResponse = request.GetResponse()

    Dim myXML As New StreamReader(objResponse.GetResponseStream())
    Dim xr = XmlReader.Create(myXML)
    Dim xdoc = XDocument.Load(xr)

    If xdoc.Descendants("status_txt").Value = "OK" Then

        Return xdoc.Descendants("url").Value

    Else

        Return "Error " & "ReturnValue: " & xdoc.Descendants("status_txt").Value

    End If

End Function

there is a bit shorter version of BitlyIn

    public static string BitlyEncrypt2(string user, string apiKey, string pUrl)
    {
        string uri = "http://api.bit.ly/shorten?version=2.0.1&format=txt" +
            "&longUrl=" + HttpUtility.UrlEncode(pUrl) +
            "&login=" + HttpUtility.UrlEncode(user) +
            "&apiKey=" + HttpUtility.UrlEncode(apiKey);

        HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
        request.Method = "GET";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ServicePoint.Expect100Continue = false;
        request.ContentLength = 0;

        return (new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd());
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top