Use o cURL

Posted by Diego Garcia on Sat 13 December 2014

O cURL é uma poderosa ferramenta de linha de comando open source utilizada basicamente para transferir dados pela sintaxe de chamadas baseadas em URL. Muito popular no mundo Unix, o cURL já vem por padrão na maioria das distribuições linux, porém, existem também versões para windows. Apesar da utilização principal do cURL ser voltada para realizar requisições HTTP, o que poucos sabem é que ele também funciona para outros protocolos como por exemplo FTP, IMAP, POP3, etc.

Mesmo que muitos torçam o nariz para a linha de comando, ficar ninja no cURL vai lhe ajudar (e muito) em seu dia a dia, principalmente se você é um desenvolvedor de APIs. Veja o básico para começar a trabalhar com ele.

Sintaxe Padrão

A sintaxe padrão do cURL é a seguinte

curl [parâmetros] [url]

Para requisições simples, não é necessário nenhum parâmetro, somente a url de destino.

curl http://localhost/

Definindo o verbo HTTP

Por padrão, uma requisição simples no cURL é feita implicitamente através do verbo GET, mas é possível alterar o verbo HTTP da requisição através da opção -X. Sendo assim, para realizar uma chamada com o verbo DELETE por exemplo, basta fazer desta forma:

curl -X DELETE http://localhost/person/foo

Enviando corpo na requisição

Principalmente em métodos POST e PUT é natural transmitir na requisição algum conteúdo no corpo, para fazer isso no cURL basta utilizar a opção -d.

curl -X POST -d 'name=Fulano&email=fulano@foo.bar' http://localhost:8888/person/

Alterando os cabeçalhos da requisição

Geralmente é necessário especificar alguma informação no cabeçalho da requisição, como por exemplo o Authorization, Content-Type, etc. Para isso, utilize a opção -H em cada item de cabeçalho adicionado.

curl -X POST -H 'Content-Type: application/json' -d '{"name": "Fulano", "email": "fulano@foo.bar"}' http://localhost:8888/person/

Salvando a resposta em arquivo

É muito comum realizar requisições para pegar um conteúdo que deverá ser salvo em um arquivo, por exemplo, baixar configurações, credenciais e os famosos dotfiles. Existem duas formas de se fazer isso, uma é direcionando a saída do curl para um arquivo através do >:

curl http://mydotfiles.net/vimrc > ~/.vimrc

Ou através da opção -o:

curl -o ~/.vimrc http://mydotfiles.net/vimrc

Exibindo o cabeçalho de resposta

O cURL por padrão exibe somente o conteúdo do corpo da resposta, porém, muitas vezes (para não dizer todas), é necessário visualizar os cabeçalhos de retorno, como por exemplo o status code. Nesses casos utilize a opção -i.

curl -i http://localhost:8888/person

Depois que comecei a usar o cURL, nunca mais usei nenhum tipo de client HTTP para realizar testes em minhas APIs e sinto que essa troca me tornou mais produtivo e mais profissional. Como o cURL é praticamente um padrão, me sinto confortavel em usa-lo até para registrar o uso de APIs em manuais e exemplos.

Para saber mais comandos, você pode usar tanto o help curl --help quanto o manual curl --man.

Referências
Site oficial



Comments !