Httpie — een console-HTTP-client met een voor mensen leesbare syntax en gekleurde uitvoer, bedoeld voor het testen van API's vanaf de opdrachtregel. Het hulpprogramma gebruikt een intuïtieve syntax: http GET https://api.example.com/users zonder dat er flags nodig zijn voor headers en de inhoud van het verzoek. Volgens Httpie CLI Documentation (2026) ondersteunt het hulpprogramma standaard JSON, sessies, authenticatie en plug-ins.
Belangrijkste punten
Httpie (of HTTPie) — een console-hulpprogramma geschreven in Python dat het versturen van HTTP-verzoeken vereenvoudigt vergeleken met cURL. Het belangrijkste verschil is een syntax die dicht bij een natuurlijke taal ligt: argumenten worden gescheiden door spaties, headers worden met een dubbele punt aangegeven en JSON-gegevens — met een gelijkteken, zonder dat aanhalingstekens hoeven te worden geëscaped.
Hetzelfde POST-verzoek vereist in cURL minstens drie flags (-X, -H, -d) en het handmatig escapen van JSON. Httpie doet hetzelfde met drie woorden zonder flags, stelt automatisch Content-Type: application/json in en kleurt de uitvoer. Het antwoord wordt standaard opgemaakt met inspringing en syntaxhighlighting.
| Bewerking | cURL | Httpie |
|---|---|---|
| GET-verzoek | curl https://api.example.com | http GET https://api.example.com |
| POST JSON | curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.com | http POST https://api.example.com name=test |
| Header | curl -H "Authorization: Bearer token123" https://api.example.com | http GET https://api.example.com Authorization:"Bearer token123" |
Httpie gebruikt één opdrachtregelformaat zonder flags voor de basisparameters. De HTTP-methode wordt als eerste argument aangegeven (GET, POST, PUT, DELETE, PATCH), de URL als tweede. Als de methode wordt weggelaten, kiest Httpie automatisch GET (voor verzoeken zonder inhoud) of POST (met inhoud).
Authorization:"Bearer token".name=John age=30.active:=true tags:=["dev","test"].avatar@~/photo.jpg.Httpie bepaalt automatisch het gegevenstype: als key=value wordt doorgegeven, wordt de inhoud als JSON verzonden. Als ruwe tekst via --raw wordt doorgegeven — als gewone tekst. Het form-data-formaat wordt geactiveerd met de flag -f.
# POST-verzoek met JSON-gegevens en header
http POST https://api.example.com/users \
name="John Doe" \
email="john@example.com" \
role:="admin" \
Authorization:"Bearer test123"
# Antwoord met kleuraccenten en Pretty-print
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 42,
"name": "John Doe"
}
JSON-serialisatie werkt in Httpie automatisch: een waarde die als key=value wordt doorgegeven, wordt een stringveld in JSON. Voor getallen en booleans wordt key:=value gebruikt. Geneste objecten worden gemaakt met puntennotatie: address.city=Moscow.
Httpie ondersteunt het multipart/form-data-formaat voor het uploaden van bestanden en gegevens via de syntax key@path. Als de inhoud van een bestand als ruwe verzoekinhoud moet worden verzonden, wordt invoeromleiding gebruikt: http POST example.com < file.json. Om een antwoord naar een bestand te downloaden wordt de flag -d (download) gebruikt.
# JSON uit een bestand verzenden
http POST https://api.example.com/users < user.json
# Bestand uploaden via multipart
http -f POST https://api.example.com/upload \
photo@~/photo.jpg \
description="Profile photo"
Sessies in Httpie bewaren de toestand tussen verzoeken: cookies, headers en authenticatieparameters. Een sessie wordt gemaakt met de flag --session=name. Sessiegegevens worden opgeslagen in een JSON-bestand in de map ~/.httpie/sessions/. Een sessie met het achtervoegsel :readonly wordt na een verzoek niet bijgewerkt.
Eerst wordt een POST naar /auth/login met inloggegevens uitgevoerd — de server geeft de sessiecookie terug. Alle volgende verzoeken aan beveiligde endpoints binnen dezelfde sessie versturen automatisch de opgeslagen cookie, wat het gedrag van een browser simuleert bij het testen van de API van een mobiele app.
# Stap 1: authenticatie
http --session=app-test POST https://api.example.com/auth/login \
username="dev" password="secret"
# Stap 2: verzoek met opgeslagen sessiecookie
http --session=app-test GET https://api.example.com/users/me
Httpie ondersteunt alle belangrijke authenticatietypen via flags: -a user:pass voor Basic Auth, --auth-type=digest voor Digest, --auth-type=bearer TOKEN voor Bearer Token. Aangepaste headers worden als HeaderName:value op elke plek in de opdracht toegevoegd.
Voor het testen van API's met OAuth 2.0 wordt de token via de Authorization-header doorgegeven. Httpie beheert de levenscyclus van de token niet op kernniveau — dat doet een extern script. De opdracht http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource is gelijk aan het expliciet opgeven van de header met token.
Httpie is ideaal voor CI/CD-pipelines dankzij nul afhankelijkheden (behalve Python) en een leesbare uitvoer. Opdrachten zijn gemakkelijk leesbaar in logs zonder extra parsing. Het hulpprogramma wordt via pip geïnstalleerd en is beschikbaar in alle populaire Docker-images, waaronder Alpine, Ubuntu en de officiële images van de CI-systemen Jenkins en GitLab. Dit maakt Httpie een geschikte keuze voor geautomatiseerd testen van REST API's en microservices.
Een typisch scenario — de status van de API controleren na deployment van de app. Httpie stuurt een verzoek naar het health-endpoint en eindigt met een niet-nul code als het antwoord niet aan de verwachting voldoet. De flag --check-status retourneert automatisch een fout bij een statuscode >= 300.
# Health check in deploymentscript
http --check-status GET https://api.staging.example.com/health
status:="ok" && \
echo "API is gezond" || \
echo "API-controle mislukt"
Httpie ondersteunt plug-ins via het systeem Package Index. Plug-ins voegen nieuwe authenticatietypen, serialisatieformaten en transporten toe. Installatie gebeurt via pip: pip install httpie-plugin-name. Na installatie wordt de plug-in automatisch geactiveerd bij de volgende start van Httpie.
Httpie ondersteunt filteren vergelijkbaar met jq via de optie --pretty=format en met cURL-compatibele uitvoer via --print. De flag --quiet schakelt de gekleurde uitvoer uit voor betere leesbaarheid in CI-logs. Gebruik voor programmatische verwerking van het antwoord de flag --body, die alleen de inhoud van het antwoord zonder headers toont.
# Een veld uit een JSON-antwoord halen met jq
http GET https://api.example.com/users/1 | jq '.name'
# Alleen de inhoud van het antwoord tonen (zonder headers)
http --body GET https://api.example.com/health
# Batchgewijs verzenden met verschillende gegevens uit een bestand
while read -r line; do
http POST https://api.example.com/items $line
done < items.txt
Httpie ondersteunt uitvoerformaten via de flag --print: H (verzoekheaders), B (verzoekinhoud), h (antwoordheaders), b (antwoordinhoud). De combinatie --print=hb toont alleen de headers en inhoud van het antwoord. De flag --pretty=all schakelt gekleurde opmaak met inspringing in.
Httpie ondersteunt aanpassingen via de variabele HTTPIE_COLORS. Stel de kleur in voor URL, headers, JSON en statuscodes. Er zijn ingebouwde thema's beschikbaar: autumn, borland, fruity, monokai, native, tango voor verschillende terminals.
Gebruik voor programmatische verwerking --body --pretty=none, dat ruwe JSON retourneert. Compacte uitvoer is handig om door te geven aan jq, sed en andere parsers bij het automatiseren van API-tests in scripts.
Httpie ondersteunt meerdere uitvoerformaten via de flag --print: H (verzoekheaders), B (verzoekinhoud), h (antwoordheaders), b (antwoordinhoud). De combinatie --print=hb toont alleen de headers en inhoud van het antwoord, met uitzondering van metainformatie over de verbinding. De flag --pretty=all schakelt gekleurde opmaak met inspringing in voor leesbaarheid.
Httpie ondersteunt aanpassing van kleuren via de omgevingsvariabele HTTPIE_COLORS. U kunt de kleur instellen voor URL, headers, JSON-sleutels en statuscodes van het antwoord. Er zijn ingebouwde thema's beschikbaar: autumn, borland, fruity, monokai, native en tango voor verschillende terminaltypen en persoonlijke voorkeuren.
Gebruik voor programmatische verwerking van de uitvoer de combinatie van flags --body --pretty=none, die ruwe JSON retourneert zonder kleuren en inspringing. Compacte uitvoer is handig voor het doorgeven aan jq, sed en andere consoleparsers bij het automatiseren van REST API-tests in shellscripts.
Veelgestelde vragen
Httpie biedt een leesbaardere syntax zonder flags voor basisbewerkingen, automatische JSON-serialisatie, kleuraccenten op het antwoord en ingebouwde ondersteuning voor sessies. cURL blijft onmisbaar voor operaties op laag niveau: werken met FTP, SMTP en niet-standaard protocollen.
Gebruik de flag -f (of --form): http -f POST example.com name=John file@~/photo.jpg. Httpie stelt automatisch Content-Type: multipart/form-data in. Zonder de flag -f worden gegevens als application/json verzonden.
Ja, Httpie ondersteunt HTTPS. Voor zelfondertekende certificaten gebruikt u de flag --verify=no. Voor het opgeven van een aangepast CA-bestand: --verify=/path/to/cert.pem. Standaard is certificaatverificatie ingeschakeld.
Nee, Httpie ondersteunt WebSocket niet en is uitsluitend bedoeld voor het HTTP/HTTPS-protocol. Gebruik voor WebSocket websocat of wscat. Httpie richt zich op REST, GraphQL en bestandsbewerkingen.
Gebruik de flag -d (download): http -d GET https://example.com/file.zip. Httpie slaat het bestand op met de oorspronkelijke naam uit de Content-Disposition-header of de URL. Geef voor een aangepaste naam -o output.zip op.
Samenvatting
http [method] URL [key=value] [Header:value] vereist voor de meeste verzoeken geen flags.We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook