Httpie: wat is het, HTTP-client voor de opdrachtregel

Auteur: IT Sectr Gepubliceerd: 2026-05-08 Leestijd: 8 min

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 — een moderne vervanging voor cURL met leesbare syntax, kleuraccenten en ingebouwde JSON-serialisatie.
  • Syntax van het verzoek wordt opgebouwd volgens het schema: http [method] URL [header:value] [key=value] zonder extra flags.
  • JSON standaard — de inhoud van het verzoek wordt als JSON-object geïnterpreteerd, de Content-Type-header wordt automatisch toegevoegd.
  • Sessies bewaren cookies en headers tussen verzoeken, handig voor het testen van geverifieerde endpoints.
  • Plug-ins breiden Httpie uit met ondersteuning voor extra formaten, authenticatietypen en aangepaste transporten.

Wat is Httpie en waarin verschilt het van cURL

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.

cURL en Httpie vergelijken

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.

BewerkingcURLHttpie
GET-verzoekcurl https://api.example.comhttp GET https://api.example.com
POST JSONcurl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.comhttp POST https://api.example.com name=test
Headercurl -H "Authorization: Bearer token123" https://api.example.comhttp GET https://api.example.com Authorization:"Bearer token123"

Syntax van verzoeken in Httpie

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).

Soorten argumenten

  • Header:Value — requestheaders met een dubbele punt, zonder spatie na de dubbele punt: Authorization:"Bearer token".
  • key=value — velden van het JSON-object in de verzoekinhoud: name=John age=30.
  • key:=value — JSON-waarden die geen string zijn (getallen, booleans, arrays): active:=true tags:=["dev","test"].
  • key@file — een waarde uit een bestand laden: 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.

bash
# 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"
}

Werken met JSON en bestanden

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.

Bestanden en binaire gegevens uploaden

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.

bash
# 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 en cookies beheren

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.

Voorbeeld van sessietesten

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.

bash
# 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

Authenticatie en headers

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.

OAuth 2.0 en Bearer Token

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 gebruiken in CI/CD-scripts

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.

Health-endpoint controleren bij deployment

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.

bash
# Health check in deploymentscript
http --check-status GET https://api.staging.example.com/health
    status:="ok" && \
    echo "API is gezond" || \
    echo "API-controle mislukt"

Geavanceerde functies en plug-ins van Httpie

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.

Populaire Httpie-plug-ins

  • httpie-jwt-auth — automatisch JWT-tokens ophalen en vernieuwen via het refresh token-mechanisme.
  • httpie-oauth — ondersteuning voor OAuth 2.0 Client Credentials en de Authorization Code-flow met automatische uitwisseling van code voor token.
  • httpie-editor — opent de verzoekinhoud in een teksteditor (vim, nano, VS Code) vóór het verzenden.
  • httpie-image — toont afbeeldingen uit het antwoord direct in de terminal (vereist kitty of iTerm2).

Scripting en het parsen van uitvoer

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.

bash
# 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

Uitvoerformaten en aanpassingen

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.

Aangepaste kleurenschema's

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.

Uitvoer in JSON-formaat

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.

Uitvoerformaten en aanpassing van het uiterlijk

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.

Aangepaste kleurenschema's

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.

Uitvoer in JSON-formaat zonder opmaak

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

Waarin is Httpie beter dan standaard cURL?

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.

Hoe verstuur ik form-data via Httpie?

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.

Ondersteunt Httpie HTTPS en certificaten?

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.

Kan ik Httpie voor WebSocket gebruiken?

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.

Hoe sla ik een antwoord in een bestand op via Httpie?

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

  • Httpie — een console-HTTP-client met intuïtieve syntax, standaard JSON en gekleurde uitvoer.
  • Basissyntax http [method] URL [key=value] [Header:value] vereist voor de meeste verzoeken geen flags.
  • JSON-serialisatie is automatisch: key=value wordt een JSON-veld, key:=value voor getallen en booleans.
  • Sessies bewaren cookies en headers tussen verzoeken voor het testen van geverifieerde endpoints.
  • Authenticatie ondersteunt Basic, Digest, Bearer en aangepaste schema's via de flag --auth-type.
  • CI/CD-integratie met --check-status en nul afhankelijkheden maakt Httpie geschikt voor deploymentscripts.
  • Bestanden uploaden via multipart form-data met de flag -f en de syntax key@file.

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.

Bespreek het project

Lees ook