Esse artigo é uma pequena demonstração de como encurtar endereços web automaticamente,
consumindo os serviços do URLI.ws, um dos encurtadorer
de URLs mais eficientes 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:
protected string ValidarURL
(string txt
)
{
//Definindo a expressão que valida endereços web
Regex regx
=
new Regex
("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\'\\,]*)?",
RegexOptions
.IgnoreCase);
//Retorna a string completa caso válido e vazio caso
inválido.
return regx
.Match(txt
).ToString();
}
O código acima verifica caracteres válidos dentro de uma URL. Isso é necessário
para que não fiquemos obtendo bad responses do servidor do URLI.ws sem necessidade.
É necessário criar um usuário AQUI para receber a KEY de acesso para utilizar nossa API.
Abaixo, segue o método que realmente encurta as URLs. Observe o código:
public static string
EncurtarURL
(string url
)
{
try
{
//Checa se a URL tem um tamanho mínimo
> o retorno do Twiite.me
if (url
.Length <=
12)
{
return url
;
}
//Checa se o endereço da URL não
começa com HTTPS ou FTP.
//Caso não comece, o prefixo https
será adicionado.
if (!url
.ToLower().StartsWith("https") && !url
.ToLower().StartsWith("ftp"))
{
url
= "https://" + url
;
}
//Encurta a URL fazendo um request
ao URLI.ws
var requisicao
= WebRequest
.Create("https://urli.ws/api.aspx?rl=" + url
+"&key="+ key);
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 URLI.ws, 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. Com isso você poderá utilizar a URL curta em
qualquer outro site como Twitter, Facebook, demais redes sociais e até compartilhar com seus amigos.