HTTPie CLI installieren: GET/POST, Header, JSON-Body und Vergleich mit curl
http installieren, GET/POST mit JSON, curl zuordnen.
curl kann alles, aber die Flags stapeln sich. HTTPie (http) bleibt lesbar für GET/POST, Header und JSON. Dieser Leitfaden:, 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, GET/POST, Header, JSON, curl-Vergleich für 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.
Was HTTPie löst
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.
HTTPie installieren
- 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 und Query-Parameter
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 und JSON-Body
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.
Eigene Header
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 |
- Passt
- Manual API exploration, copy-paste examples in READMEs, JSON debugging beside jq and ripgrep.
- Passt nicht
- 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.
Nach dem API-Entwurf auf ein Board ausrichten
Once endpoints make sense in the terminal, service boundaries still belong on a shared canvas. See Raum erstellen.