jueves, 23 de julio de 2009

ASP.NET - Disfrazar y reducir tamaño de url con tinyurl

Muchos ya saben qué es tinyurl, para los que no saben: tinyurl es un servicio gratuito que permite convertir una url en otra url de tamaño mucho más reducido.

Tú dirás (si es que aún no la ves) y para qué sirve esto?
Si te pones a pensar en la utilidad que puede tener, descubrirás que puede ser de gran valor. Te pongo unos casos:
- A veces envías correos electrónicos en el cual incluyes urls extensas, las cuales terminan mostrándose en dos o tres líneas y que finalmente hacen dificil reconstruir la url.

- Si no quisiéramos que nuestra url sea detectada por robots, esta sería una buena manera de disfrazar nuestras urls... pues sólo leerían algo como tinyurl.com/xxxx ... lo cual o dice nada.

- Si no quisiéramos que el usuario sepa a dónde conduce el link... a menos que haga click en él... para que el click sea contabilizado.

- etc, etc, etc ... a estas alturas ya se te habrá ocurrido un par de casos en los que es útil tinyurl.

Ahora, lo que vamos a hacer es automatizar el proceso de reducción de url via tinyurl.
1.- Necesitamos una fx que me permita recuperar el html de la página de tinyurl... así:

Public Shared Function GetHTMLFromURL(ByVal URL As String) As String
Dim ASCII As New System.Text.ASCIIEncoding
Dim netWeb As New System.Net.WebClient
Dim lsWeb As String
Dim laWeb As Byte()

Try
laWeb = netWeb.DownloadData(URL)
lsWeb = ASCII.GetString(laWeb)
Catch ex As Exception
Throw New Exception(ex.Message.ToString + ex.ToString)
End Try

Return lsWeb

End Function

2.- Usamos la función desde el page_load de nuestra página aspx... así:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim OriginalUrl As String = "http://dotnet-peru.blogspot.com"

'la página api-create.php es la que hace el trabajo sucio
Dim ShortUrl As String = GetHTMLFromURL("http://tinyurl.com/api-create.php?url=" & OriginalUrl)

End Sub

De esta manera, la url http://dotnet-peru.blogspot.com se convirtió en http://tinyurl.com/nccaze

Y eso es todo, realmente fue muy sencillo no es cierto? ;)

No hay comentarios.: