C# - Encurtando URLs com a API Bitly
Neste artigo veremos como podemos usar a API Bitly para encurtar uma URL em um projeto Windows Forms usando a linguagem C#. |
Para navegar na web você precisa muitas vezes digitar URLS em seu navegador. Pensando nisso existe uma preocupação de tornar as URLs curtas, fáceis de lembrar e digitar. Infelizmente existem endereços que não seguem esse princípio.
Sabe aquelas URLs looonngas que nenhum mortal em sã consciência teria a coragem de digitar, mas, que por força da necessidade, tem que ser digitada ?
Felizmente existem diversos aplicativos e sites na web que oferecem o serviço para simplificar URLs.
A disseminação das URLs curtas começou com o aumento de popularidade do Twitter. Devido à limitação de 140 caracteres imposta pelo microblog, não tardou a aparecer uma solução para enviar links nos posts sem comprometer o restante da mensagem.
Neste artigo eu vou mostrar como podemos
usar os recursos da API do Bitly para encurtar URLs.
Recursos usados:
Obtendo um nome de usuário e chave no Bitly
Como vamos usar a API do Bitly será preciso acessar o site https://bitly.com/ e se cadastrar.
Após você concluir o seu cadastro acesse link https://bitly.com/a/your_api_key onde irá obter o seu BITLY USERNAME e BITLY API KEY.
Copie os valores pois eles serão usados em nosso projeto para encurtar URLs.
Criando o projeto Windows Forms
Abra o VS 2013 Express for desktop clique em New Project;
Selecione Visual C# ->Windows Forms Application, informe o nome Encurtando_Urls e clique no botão OK;
Vamos incluir em nosso projeto uma referência ao namespace System.Web pois vamos usar no projeto o método UrlEnconde da classe HttpUtility para codificar a URL que desejamos encurtar.
No menu PROJECT clique em Add Reference;
A seguir clique em Assemblies e selecione o namespace System.Web marcando-o conforme a figura abaixo:
A seguir vamos incluir no formulário form1.cs a partir da ToolBox os seguintes controles:
1 Label = Text= Informe a URL
1 TextBox - name = txtUrlOriginal
1 Button - name = btnbtnEncurtarUrl
1 Label - Text= Nova URL
1 TextBox - name = txtUrlEncurtada
2 Labels : lblCodigoStatus e lblTextoStatus
Disponha os controles no formulário conforme o leiaute da figura a seguir:
Agora vamos criar declarar no início do formulário os namespaces usados no projeto:
using
System;using
System.IO;using
System.Net;using
System.Text;using
System.Windows.Forms;using
System.Xml;using
System.Web;A seguir logo após a declaração da classe Form1 (após o construtor) vamos definir as variáveis que iremos usar em nosso projeto:
Agora no evento Click do botão de comando - Encurtar URL usando a API Bitly - inclua o seguinte código:
private void btnEncurtarUrl_Click(object sender, EventArgs e)
{
if (txtUrlOriginal.Text == string.Empty)
{
MessageBox.Show("Informe a URL que deseja encurtar...", "URL", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtUrlOriginal.Focus();
return;
}
urlOriginal = txtUrlOriginal.Text; // a url que desejamos simplificar
XmlDocument xmlDoc = new XmlDocument(); // O documento XML que será usado para tratar a reposta do servidor
try { //Faz uma solicitação ao bitly WebRequest request = WebRequest.Create("http://api.bitly.com/v3/shorten"); //passa os dados do usuário, a chave da API e a url original
byte[] data = Encoding.UTF8.GetBytes(string.Format("login={0}&apiKey={1}&urlOriginal={2}&format={3}",
"xxxxxxxxxxxx", // seu nome de usuário na bitly
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // sua chave para suar a API (API key)
HttpUtility.UrlEncode(urlOriginal), // Aplicar Encode na url que vamos encurtar
"xml")); // O formato da resposta que desejamos que o servidor responda
//envia os dados via POST
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (Stream ds = request.GetRequestStream())
{
ds.Write(data, 0, data.Length);
}
//lê o arquivo XML obtido so servidor using (WebResponse response = request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { xmlDoc.LoadXml(sr.ReadToEnd()); } } // Extrai as informações do arquivo XML resposta obtido do servidor
CodigoStatus = xmlDoc.GetElementsByTagName("status_code")[0].InnerText;
TextoStatus = xmlDoc.GetElementsByTagName("status_txt")[0].InnerText;
urlEncurtada = xmlDoc.GetElementsByTagName("url")[0].InnerText;
urlOriginal = xmlDoc.GetElementsByTagName("long_url")[0].InnerText;
//exibe os valores obtidos txtUrlEncurtada.Text = urlEncurtada; lblCodigoStatus.Text = "Código status = " + CodigoStatus; lblTextoStatus.Text = "Status = " + TextoStatus; } catch(Exception ex) { MessageBox.Show("Ocorreu um erro durante o processamento. Verifique e tente novamente", "Processamento URL", MessageBoxButtons.OK, MessageBoxIcon.Error); } } |
O código acima é bem simples e já esta comentado. Atente para usar os seus dados de usuário obtidos no Bitly.
Executando o projeto e realizando um teste com um url, obtemos o seguinte resultado:
Pegue o projeto completo aqui: Encurtando_Urls.zip
Todavia digo-vos a verdade, que vos convém que eu vá; porque, se eu não for, o
Consolador não virá a vós; mas, quando eu for, vo-lo enviarei.
E, quando ele vier, convencerá o mundo do pecado, e da justiça e do juízo.
João 16:7-8
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C# - Enviando arquivos para o servidor via FTP - Macoratti.net