Installer HTTPie CLI : exemples GET/POST, en-têtes, JSON et comparaison curl
Installer http, envoyer GET/POST JSON, comparer à curl.
curl fait tout, mais les options s’accumulent. HTTPie (http) reste lisible pour GET/POST, en-têtes et JSON. Ce guide couvre, but flags pile up fast. HTTPie (the http command) uses readable syntax for GET/POST, headers, and JSON bodies, with pretty-printed responses by default. installation macOS/Linux/Windows, exemples GET/POST, en-têtes, JSON, comparaison curl pour les lecteurs de hereink.
The query is how to install HTTPie CLI and send GET POST JSON requests. You should finish with http installed, a first GET to a public endpoint, a JSON POST, and the curl equivalents in mind.
Ce que HTTPie règle
Readable CLI HTTP
http GET api.example.com/users separates method, URL, and options; JSON responses are colorized and indented without juggling -H and -d order.
Pairs with jq
Pipe http GET … | jq '.data' to keep only the fields you need. Our jq guide covers transforms; HTTPie covers sending the request.
Upstream:
github.com/httpie/cli, docs athttpie.io/docs/cli. Runhttp --versionafter install.
Installer HTTPie
- 1macOS (Homebrew)
brew install httpie. Verify withwhich httpandhttp --version. - 2Linux (packages or pip)
Debian/Ubuntu:
sudo apt update && sudo apt install httpie. Fedora:sudo dnf install httpie. Generic:python3 -m pip install --user httpie; ensure~/.local/binis onPATH. - 3Windows
winget install httpie.httpieorpip install httpie. Open a new terminal and runhttp --version. - 4First GET
http GET https://httpbin.org/getshould return JSON mirroring your request headers.
GET et paramètres de requête
http GET https://httpbin.org/get
http GET https://httpbin.org/get page==2 limit==10
http --body GET https://httpbin.org/uuid
http --follow GET https://httpbin.org/redirect/1Omitting the method defaults to GET. For raw downloads or low-level HTTP, curl still wins; for JSON APIs, start with http.
POST et corps JSON
http POST https://httpbin.org/post name=Ada role=admin
http POST https://httpbin.org/post tags:='["go","rust"]'
http POST https://httpbin.org/post < payload.json
http --form POST https://httpbin.org/post email=test@example.com= sends string fields; := sends JSON literals. Test against httpbin or staging before hitting production.
En-têtes personnalisés
http GET https://httpbin.org/headers Authorization:"Bearer YOUR_TOKEN" Accept:application/json
http GET api.example.com/v1/me X-Api-Key:xxx User-Agent:my-cli/1.0
http --download GET https://example.com/file.zipHTTPie vs curl
| Goal | HTTPie | curl |
|---|---|---|
| GET JSON | http GET https://httpbin.org/get | curl -s https://httpbin.org/get | jq . |
| Query string | http GET url q==search | curl -s 'url?q=search' |
| POST JSON | http POST url name=Ada | curl -s -X POST -H 'Content-Type: application/json' -d '{"name":"Ada"}' url |
| Header | http GET url Authorization:"Bearer x" | curl -s -H 'Authorization: Bearer x' url |
| Body only | http --body GET url | curl -s url |
| Multipart | http --form POST url file@./a.png | curl -F file=@./a.png url |
- Convient
- Manual API exploration, copy-paste examples in READMEs, JSON debugging beside jq and ripgrep.
- Ne convient pas
- Complex OAuth device flows, client-cert TLS, or reproducing full browser cookie jars—use curl or a dedicated client.
http or httpie command?
Package name is often httpie; the binary is http (and https). Run http --help.
Script-friendly output?
Use --body or --print=b, then pipe to jq. Add --check-status when exit codes must reflect HTTP status (see docs).
Replace curl entirely?
Use HTTPie for daily JSON REST; keep curl for legacy scripts, health checks, and edge protocols. Both on PATH is fine.
Après l’API, aligner sur un tableau
Once endpoints make sense in the terminal, service boundaries still belong on a shared canvas. See créer un espace.