Overview
Another article of our
series that talks about accessing URL shortening services programmatically.
This article is talking
about is.gd shortening service, how you can use it, and how to access it via
your C#/VB.NET application.
Introduction
Is.gd is one of the most popular shortening
services ever in the web because of its simple interface and its easy-to-use
API.
When you visit service
website, http://is.gd, you can see that nothing
easier from is.gd, just push your long URL into the text box and click the
shortening button.
API
is.gd provides you a very
simple easy-to-use API. This API
contains only one function that's used for shortening URLs. Another good thing
is that this function doesn't require any kind of authentication for users.
Therefore, you need just to spam it with your long URL (as you did with the
website.)
This glorious function is
called http://is.gd/api.php, it accepts only
a single argument, longurl, which can be set to the long URL you need
to shorten. When you call the function, it simply returns the shortened URL as
plain text (no more overhead.)
Now, let's try this
function. We'll try to shorten the URL
http://JustLikeAMagic.com with our function. First, connect the arguments,
http://is.gd/api.php?longurl=http://JustLikeAMagic.com. Now copy this
address and paste it into your favorite browser. If everything was OK, you
should see the short URL after clicking in the browser toolbar.
Now, let's do it in C# and
VB.NET. Check the following function that tries to shorten long URLs via the
id.gd API:
C#
string Shorten(string
url)
{
url = Uri.EscapeUriString(url);
string reqUri =
String.Format(@"http://is.gd/api.php?longurl={0}",
url);
HttpWebRequest
req = (HttpWebRequest)WebRequest.Create(reqUri);
req.Timeout = 5000;
try
{
using (System.IO.StreamReader
reader =
new System.IO.StreamReader(req.GetResponse().GetResponseStream()))
{
return reader.ReadLine();
}
}
catch
(WebException ex)
{
return ex.Message;
}
}
VB.NET
Function Shorten(ByVal
url As String)
As String
url =
Uri.EscapeUriString(url)
Dim reqUri As
String = _
String.Format("http://is.gd/api.php?longurl={0}",
url)
Dim req As
WebRequest = WebRequest.Create(reqUri)
req.Timeout = 5000
Try
Dim reader
As System.IO.StreamReader = _
New
System.IO.StreamReader(req.GetResponse().GetResponseStream())
Dim retValue
As String =
reader.ReadLine()
reader.Dispose()
Return retValue
Catch ex As
WebException
Return ex.Message
End Try
End Function
Notice that we have
used the function System.Net.Uri.EscapeUriString() to eliminate unacceptable
characters from the URL by encoding them.
Notice too that we have
included our code in a Try-Catch block so we can catch exceptions before they
blow up our application.
What's next
Consider reading other articles in this series
here.