Esse artigo é uma pequena demonstração de como encurtar endereços web automaticamente, consumindo os serviços do TinyURL, um dos encurtadorer de URLs mais popularer da atualidade. O código exige a utilização de expressões regulares, para verificar se o endereço recebido como parâmetro é uma URL válida, para que não ocorram erros. Observe o método abaixo:
{
//Definindo a expressão que valida endereços web
Regex regx = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\'\\,]*)?", RegexOptions.IgnoreCase);
//Retorna uma ou nenhuma string.
return regx.Match(txt);
}
No código acima, definimos meio trilhão de caracteres dentro de uma expressão regular que checa caracteres válidos dentro de uma URL. Isso é necessário para que não fiquemos obtendo bad responses do servidor do TinyURL sem necessidade. Abaixo, faremos o método que realmente encurta as URLs. Observe o código:
{
try
{
//Checa se a URL tem um tamanho mínimo > o retorno do TinyURL
if (url.Length <= 12)
{
return url;
}
//Checa se o endereço da URL não começa com HTTP ou FTP.
//Caso não comece, o prefixo http será adicionado.
if (!url.ToLower().StartsWith("http") && !url.ToLower().StartsWith("ftp"))
{
url = "http://" + url;
}
//Encurta a URL fazendo um request ao TinyURL
var requisicao = WebRequest.Create("http://tinyurl.com/api-create.php?url=" + url);
var resposta = requisicao.GetResponse();
string texto;
using (var reader = new StreamReader(resposta.GetResponseStream()))
{
texto = reader.ReadToEnd();
}
return texto;
}
catch (Exception)
{
//...
}
}
O código acima, através de requisições ao servidor do TinyURL, transforma o endereço recebido como parâmetro, em uma URL encurtada de forma automatizada, sem que seja necessário entrar no site para tal operação. É uma operação muito comum nos clientes desktop do Twitter, devido à limitação de 140 caracteres.
Bem, por enquanto é só. Críticas e sugestões, os comentários estão abertos!
Abraços e keep coding!
Paulo Roberto em julho 12th, 2010 at 12:15 says:
Opa, tudo bem?
Você pode me ajudar a entender como utilizar a API deste encurtador brasileiro? http://clipe.me
Tenho um pequeno site em joomla e queria usar para publicar no twitter minhas atualizações.
Obrigado pela ajuda.
PR
Bruno Bemfica em julho 12th, 2010 at 16:35 says:
Paulo, obrigado pelo comentário. Basicamente, para utilizar a API do clipe.me, pode utilizar o mesmo código que eu ilustrei aqui no artigo, apenas troque a string que contém a URL do tinyURL por “http://clipe.me/index.php?api=1&return_url_text=1&longUrl=” e será o suficiente. No caso dos outros parâmetros, apenas adicione a string ?NomeDoParametro= + “valorDoParametro” à string de URL.
Abraços e keep coding!
Paulo Roberto em julho 28th, 2010 at 09:26 says:
Olá,
estou usando um componente para Joomla que tem no rodapé do site para baixar esta rodando perfeitamente.
Ele publica instantaneamente os novos artigos e as atualizações via Joomla no Twitter e no Facebook.
Olhem a página de estatística da url curta que legal:
[IMG]http://www.clipdiario.com.br/estatistica.jpg[/IMG]
Abraços
Padunic