Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. HTTP

HTTPie, Ferramenta Amigável Parecida com cURL

by
Difficulty:BeginnerLength:ShortLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

cURL é uma ferramenta de linha de comando comum para requisições HTTP. Nesse tutorial, veremos HTTPie, uma ferramenta de linha de comando para requisições HTTP amigável. HTTPie usa comando com sintaxe simples e natural, e mostra retornos de forma apresentável.

Da documentação oficial:

HTTPien (pronuncia-se ei-ti-ti-pai) é um cliente HTTP de linha de comando. Seu objetivo é tornar interação CLI de serviços web o mais amigável possível. Ela prové um comando http simples que permite enviar requisições HTTP arbitrárias usando uma sintaxe simples e natural e com retorno colorido. HTTPie pode ser usada para testes, depuração e interações gerais com servidores HTTP.

Começando

Para começar com HTTPie em no Ubuntu, precisamos instalar o pacote usando apt-get.

Após instalada, teremos HTTPie no sistema. Tentemos uma requisição GET a qualquer site usando HTTPie:

A consulta acima retorna a seguinte resposta:

HTTP Response

Parece que HTTPie está instalada e funcionando no sistema. Se atentarmos, o retorno colorido mostra que a URL foi movida permanentemente para https://tutsplus.com. Por isso, para um GET para Tutsplus, modifiquemos a consulta:

A consulta acima retornará o HTML da requisição GET à url https://tutsplus.com.

Como visto na consulta acima, a única informação que HTTPie precisa para realiza a requisição é a URL.

Realizando Requisições Básicas Com HTTPie

Antes de continuar com os comandos do HTTPie, veremos como realizar requisições básicas com ele. Usaremos o json-server para termos um servidor simulado funcional para realizar as requisições. Para começar, instalemos json-server usando npm.

Criemos um arquivo index.js que criaremos dados aleatórios para nosso servidor simulado.

Executemos json-server usando index.js.

Agora, ele deve estar funcionando em http://localhost:3000/.

Requisições GET Usando HTTPie

Por padrão se uma URL é dada ao HTTPie, ele assume que a requisição será GET e a realiza. Eis um exemplo de requisição GET:

A requisição acima retorna o seguinte:

Requisição POST usando HTTPie

Para uma requisição POST com HTTPie, precisamos adicionar a palavra POST junto dos dados a serem enviados à URL. Eis um exemplo:

O comando mostrará algo semelhante ao seguinte na tela:

Tentemos uma requisição GET com HTTPie e devemos ver o novo dado adicionado na resposta.

Enviando Formulários Usando HTTPie

Enviar formulários é outra requisição comum realizada por usuários. Com HTTPie, isso é bem fácil, especificando a opção form, mostrada abaixo:

Quando o comando acima é executado, o Content-Type é application/x-www-form-urlenconded; charset=utf-8 é configurado automaticamente, assim, não precisamos fazê-lo manualmente.

Lidando Com Redirecionamentos HTTP

Como percebemos num exemplo inicial, por padrão, HTTPie não lida com redirecionamentos HTTP. Ao tentar um GET a www.tutsplus.com, ele nos mostrou uma mensagem dizendo que a URL foi movida. Se quisermos que HTTPie lide com redirecionamentos, precisamos da opção follow no comando da requisição.

A consulta acima lidará com qualquer redirecionamento existente.

Baixando Arquivos Usando HTTPie

HTTPie provê a possibilidade de baixar arquivos de um servidor, parecido ao comando wget. Para tanto, precisamos passar a opção download junto da URL.

O comando acima mostrará a resposta como visto abaixo:

Lidando com Autenticação

Acessar uma URL de um serviço web requer algum tipo de autenticação. HTTPie suporta os mecanismos mais comuns de autenticação. Por padrão, HTTPie suporta autenticação básica, então precisamos apenas passar o usuário e senha à requisição com a opção -a.

Para usar o método de sumário de autenticação, precisamos passar o mecanismo de autenticação com a opção -A.

Customizando a Visualização da Resposta

Ao realizamos uma requisição à URL, todos os dados das informações do cabeçalho são mostrados no terminal. HTTPie provê uma opção para customizá-los. Podemos imprimir cabeçalhos e dados do corpo da reposta, especificando as opções --header e --body, junto da requisição.

O comando acima imprimirá as informações do cabeçalho como mostrado:

Agora, se tentarmos a requisição com a opção --body, deverá imprimir a parte do corpo.

O comando acima imprimirá o retorno abaixo:

Mantendo Sessões

Ao usar HTTPie, cada requisição é independente das outras. Podemos manter sessões caso queiramos persistí-las para outras requisições. Para tanto, tudo que precisamos é criar uma sessão nomeada, assim:

O comando acima criará uma sessão chamada roy que pode ser usada para outras requisições usando o mesmo nome. Eis um exemplo do uso da sessão nomeada roy:

Auto Completar Usando o Prompt HTTP

Pode ser difícil lembrar todos os comandos do HTTPie. O kit de ferramentas http-prompt provê o recurso de auto-completar que pode ser usado com HTTPie. Para usar o http-prompt, instalemo-no com pip:

Para começar uma sessão, invoquemos http-prompt com a URL do servidor que consultaremos. Reiniciemos json-server e invoquemos http-prompt, assim:

Digitemos algumas letras de HTTP e o auto-completar aparecerá.

A demo of the autocomplete

Digitemos httpie e deverá mostrar a URL que consultamos.

Todos os comandos de requisição do HTTPie deve funcionar com o http-prompt. Digitemos GET e ele deve aparecer no auto-completar. Ao digitar o comando GET, a resposta abaixo será mostrada.

The response of a GET command

Resumindo

Nesse tutorial, vimos como usar o HTTPie, uma alternativa mais amigável ao cURL. Vimos como realizar requisições básica como GET e POST usando-o, além de outros recursos. Para mais informações sobre HTTPie, vejamos a documentação oficial. Também vejamos a documentação oficial do http-prompt. Diga-nos o que achou nos comentários abaixo.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.