Découvrir HTTPie : l’alternative lisible à curl

Linux 3 juin 2026

Quand on travaille avec des API REST, on utilise souvent curl. C’est puissant, installé presque partout, mais pas toujours très lisible.
Dès qu’il faut envoyer du JSON, ajouter des headers HTTP ou gérer un token, les commandes deviennent rapidement longues.

HTTPie propose une alternative plus simple à lire et plus agréable à utiliser en ligne de commande.
C’est un client HTTP open source pensé pour tester des API depuis un terminal.

Dans cet article, nous allons voir comment installer HTTPie et l’utiliser pour faire nos premières requêtes HTTP.

Présentation

HTTPie permet d’envoyer des requêtes HTTP simplement depuis un terminal. L’objectif est de remplacer une commande parfois difficile à lire comme :

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer TOKEN" \
  -d '{"name":"test","role":"admin"}'
Par une commande plus claire :
http POST https://api.example.com/users \
  Authorization:"Bearer TOKEN" \
  name=test \
  role=admin

HTTPie est particulièrement pratique pour :

  • Tester une API REST
  • Envoyer du JSON rapidement
  • Vérifier des headers HTTP
  • Lire une réponse JSON

Installation

HTTPie peut être installé de plusieurs manières selon le système.

Sur Debian ou Ubuntu :

sudo apt update
sudo apt install httpie

Sur macOS avec Homebrew :

brew install httpie

Avec Python et pip :

python3 -m pip install --upgrade httpie

HTTPie propose plusieurs méthodes d’installation, notamment via apt, brew, pip, snap, yum ou encore choco.

Vérifier l’installation :

http --version

Première requête GET

Pour faire une requête GET, il suffit d’utiliser la commande http suivie de l’URL :

http https://httpbin.org/get

Par défaut, HTTPie utilise GET lorsqu’aucune méthode n’est précisée et qu’aucune donnée n’est envoyée.

Résultat attendu :

{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "HTTPie/3.2.4"
  },
  "origin": "x.x.x.x",
  "url": "https://httpbin.org/get"
}

La réponse est automatiquement formatée, ce qui rend le résultat plus lisible qu’une sortie brute.

Requête GET avec paramètres

Pour envoyer des paramètres dans l’URL, on peut les ajouter directement :

http https://httpbin.org/get search==terraform page==1

Attention à la syntaxe champ==valeur. Le double égal == indique à HTTPie qu’il s’agit d’un paramètre de query string.

La requête générée sera équivalente à :

https://httpbin.org/get?search=terraform&page=1

Envoyer du JSON avec la méthode POST

L’un des gros avantages d’HTTPie est l’envoi de JSON.

Exemple :
http POST https://httpbin.org/post name=test role=admin enabled:=true

Ici, HTTPie génère automatiquement un body JSON.

La différence importante :

name=test   -> chaîne de caractères
enabled:=true   -> valeur JSON native

Avec =, la valeur est envoyée comme une string.
Avec :=, la valeur est interprétée comme du JSON.

Exemple :

http POST https://httpbin.org/post \
  name=web-01 \
  cpu:=2 \
  memory:=4096 \
  enabled:=true

Body JSON envoyé :

{
  "name": "web-01",
  "cpu": 2,
  "memory": 4096,
  "enabled": true
}

HTTPie est capable de gérer nativement les requêtes JSON, et l’option --json permet aussi de forcer explicitement l’en-tête Accept: application/json.

Ajouter des headers HTTP

Pour ajouter un header HTTP, la syntaxe est simple :

http https://httpbin.org/get X-Environment:prod
Exemple avec plusieurs headers :
http https://httpbin.org/get \
  X-Environment:prod \
  X-App:myapp
Pour un token Bearer :
http https://api.example.com/users \
  Authorization:"Bearer MON_TOKEN"

C’est beaucoup plus lisible qu’un curl avec plusieurs -H.

Conclusion

HTTPie est une excellente alternative à curl pour tester des API depuis un terminal.

Il ne remplace pas forcément curl dans tous les cas, notamment sur des serveurs minimalistes où curl est déjà présent.
Mais pour le développement, le debug d’API et les usages DevOps quotidiens, HTTPie est souvent plus lisible et plus confortable.

Mots clés