2024-03-14 21:31:33 +03:00
|
|
|
---
|
|
|
|
category: tool
|
|
|
|
tool: httpie
|
|
|
|
filename: learn-httpie-pt.sh
|
|
|
|
contributors:
|
|
|
|
- ["Adaías Magdiel", "https://github.com/AdaiasMagdiel"]
|
|
|
|
translators:
|
|
|
|
- ["Adaías Magdiel", "https://adaiasmagdiel.com/"]
|
|
|
|
lang: pt-br
|
|
|
|
---
|
|
|
|
|
|
|
|
HTTPie é um poderoso cliente HTTP para linha de comando, projetado para uma
|
|
|
|
integração suave com servidores HTTP. Oferece uma interface simples e intuitiva,
|
|
|
|
tornando-se uma excelente ferramenta para desenvolvedores, testadores e administradores de sistemas.
|
|
|
|
|
|
|
|
## Uso Básico
|
|
|
|
|
|
|
|
HTTPie possui uma sintaxe simples: http [flags] [MÉTODO] URL [itens].
|
|
|
|
|
|
|
|
```bash
|
|
|
|
http GET https://api.example.com/posts
|
|
|
|
```
|
|
|
|
|
|
|
|
Você pode exibir a requisição sem executá-la, de fato, usando a flag `--offline`.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
http --offline https://api.example.com/posts
|
|
|
|
```
|
|
|
|
|
|
|
|
### Encurtando URLs `localhost`
|
|
|
|
|
2024-06-03 22:31:20 +03:00
|
|
|
HTTPie fornece suporte a atalhos para o localhost, similares aos do `curl`. Por exemplo, `:3000`
|
|
|
|
expande para `http://localhost:3000`. Se a porta for omitida, o padrão será a porta 80.
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
|
|
|
http :/users # http://localhost/users
|
|
|
|
http :5000/rss # http://localhost:5000/rss
|
|
|
|
```
|
|
|
|
|
|
|
|
### Métodos Opcionais GET e POST
|
|
|
|
|
|
|
|
Se você não especificar o método, o HTTPie usará o seguinte:
|
|
|
|
|
|
|
|
- GET para requisições sem corpo
|
|
|
|
- POST para requisições com corpo
|
|
|
|
|
|
|
|
```bash
|
|
|
|
http https://api.example.com/tags # GET - Seleciona as tags
|
|
|
|
http https://api.example.com/tags title="Tutorial" slug="tutorial" # POST - Cria uma nova tag
|
|
|
|
```
|
|
|
|
|
|
|
|
## Parâmetros Querystring
|
|
|
|
|
|
|
|
Se você adiciona querystrings manualmente no terminal, tente a seguinte sintaxe:
|
|
|
|
`param==value`. Isso evita que o shell tente reconhecer o operador & como comando
|
|
|
|
e automaticamente escape caracteres especiais nos parâmetros.
|
|
|
|
Isso difere dos parâmetros na URL completa, que o HTTPie não modifica.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
http https://api.example.com/search q==httpie per_page==20
|
|
|
|
```
|
|
|
|
|
|
|
|
## Enviando Dados
|
|
|
|
|
|
|
|
Você pode enviar dados nos mais diversos formatos, como JSON, formulários ou arquivos.
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
### Enviando JSON
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
2024-03-15 14:41:01 +03:00
|
|
|
http POST https://api.example.com/posts title="Olá" body="Mundo"
|
2024-03-14 21:31:33 +03:00
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
### Enviando Formulário
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
|
|
|
http -f POST https://api.example.com/submit name=John email=john@example.com
|
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
### Enviando Arquivos
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
2024-03-15 14:41:01 +03:00
|
|
|
http --form POST https://api.example.com/upload file@/caminho/do/arquivo.txt
|
2024-03-14 21:31:33 +03:00
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
## Headers e Autenticação
|
2024-03-14 21:31:33 +03:00
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
HTTPie permite que você adicione headers e lide com autenticação de uma forma fácil.
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
### Headers
|
|
|
|
|
|
|
|
```bash
|
|
|
|
http GET https://api.example.com/posts Authorization:"Bearer Token" User-Agent:"HTTPie"
|
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
### Autenticação Básica
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
2024-03-15 14:41:01 +03:00
|
|
|
http -a usuario:senha GET https://api.example.com/protected
|
2024-03-14 21:31:33 +03:00
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
### Autenticação Bearer
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
|
|
|
https -A bearer -a token https://api.example.com/admin
|
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
## Lidando com Respostas
|
2024-03-14 21:31:33 +03:00
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
HTTPie fornece várias opções para lidar com respostas.
|
2024-03-14 21:31:33 +03:00
|
|
|
|
|
|
|
```bash
|
2024-03-15 14:41:01 +03:00
|
|
|
http GET https://api.example.com/data Accept:application/json # Exibe o JSON de uma forma legível
|
2024-03-14 21:31:33 +03:00
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
http GET https://api.example.com/image --output image.png # Grava a resposta em um arquivo
|
2024-03-14 21:31:33 +03:00
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
http --follow GET https://example.com # Segue redirecionamentos
|
2024-03-14 21:31:33 +03:00
|
|
|
```
|
|
|
|
|
2024-03-15 14:41:01 +03:00
|
|
|
## Leitura Adicional
|
2024-03-14 21:31:33 +03:00
|
|
|
|
2024-06-03 22:31:20 +03:00
|
|
|
- [Documentação Oficial](https://httpie.io/docs/cli)
|
|
|
|
- [GitHub](https://github.com/httpie)
|