Httpie — egy konzolos HTTP-kliens, ember számára olvasható szintaxissal és színes kimenettel, amely API-k parancssorból történő tesztelésére szolgál. Az eszköz intuitív szintaxist használ: http GET https://api.example.com/users, anélkül hogy flag-eket kellene megadni a fejlécekhez és a kérés törzséhez. A Httpie CLI Documentation (2026) szerint az eszköz alapértelmezés szerint támogatja a JSON-t, a munkameneteket, a hitelesítést és a bővítményeket.
Főbb pontok
Httpie (vagy HTTPie) — egy Pythonban írt konzolos segédprogram, amely leegyszerűsíti a HTTP-kérések küldését a cURL-hez képest. A fő különbség a természetes nyelvhez közeli szintaxis: az argumentumokat szóközök választják el, a fejléceket kettősponttal, a JSON-adatokat pedig egyenlőségjellel adjuk meg, anélkül hogy az idézőjeleket escape-elni kellene.
Ugyanaz a POST-kérés a cURL-ban legalább három flag-et (-X, -H, -d) és a JSON kézi escape-elését igényli. A Httpie ugyanezt három szóval, flag-ek nélkül végzi, automatikusan beállítja a Content-Type: application/json-t és kiszínezi a kimenetet. A válasz alapértelmezés szerint behúzással és szintaxiskiemeléssel formázódik.
| Művelet | cURL | Httpie |
|---|---|---|
| GET-kérés | 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 |
| Fejléc | curl -H "Authorization: Bearer token123" https://api.example.com | http GET https://api.example.com Authorization:"Bearer token123" |
Httpie egységes parancssori formátumot használ flag-ek nélkül az alap paraméterekhez. A HTTP-metódus az első argumentumként van megadva (GET, POST, PUT, DELETE, PATCH), az URL — másodikként. Ha a metódus kimarad, a Httpie automatikusan a GET-et (törzs nélküli kérésekhez) vagy a POST-ot (törzzsel) választja.
Authorization:"Bearer token".name=John age=30.active:=true tags:=["dev","test"].avatar@~/photo.jpg.A Httpie automatikusan meghatározza az adattípust: ha key=value-t adunk meg — a törzs JSON-ként kerül elküldésre. Ha nyers szöveget adunk meg a --raw segítségével — egyszerű szövegként. A form-data formátum a -f flag-gel aktiválódik.
# POST-kérés JSON-adatokkal és fejléccel
http POST https://api.example.com/users \
name="John Doe" \
email="john@example.com" \
role:="admin" \
Authorization:"Bearer test123"
# Válasz kiemeléssel és Pretty-print móddal
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 42,
"name": "John Doe"
}
JSON-szerializáció a Httpie-ban automatikusan működik: a key=value formában megadott érték a JSON sztringmezőjévé válik. Számokhoz és logikai értékekhez a key:=value használatos. Beágyazott objektumok pontjelöléssel hozhatók létre: address.city=Moscow.
A Httpie támogatja a multipart/form-data formátumot fájlok és adatok feltöltéséhez a key@path szintaxissal. Ha egy fájl tartalmát nyers kéréstörzsként kell elküldeni, bemenet-átirányítás használatos: http POST example.com < file.json. A válasz fájlba történő letöltéséhez a -d (download) flag szolgál.
# JSON küldése fájlból
http POST https://api.example.com/users < user.json
# Fájl feltöltése multipart segítségével
http -f POST https://api.example.com/upload \
photo@~/photo.jpg \
description="Profile photo"
Munkamenetek a Httpie-ban állapotot tárolnak a kérések között: cookie-kat, fejléceket és hitelesítési paramétereket. A munkamenet a --session=name flag-gel hozható létre. A munkamenet adatai JSON-fájlban tárolódnak a ~/.httpie/sessions/ mappában. A :readonly utótagú munkamenet a kérés után nem frissül.
Először egy POST kérés történik a /auth/login végpontra hitelesítő adatokkal — a szerver visszaadja a munkamenet cookie-ját. A további, védett végpontokra irányuló kérések ugyanabban a munkamenetben automatikusan elküldik a tárolt cookie-t, ami a böngésző viselkedését szimulálja mobilalkalmazás API-jának tesztelésekor.
# 1. lépés: hitelesítés
http --session=app-test POST https://api.example.com/auth/login \
username="dev" password="secret"
# 2. lépés: kérés a tárolt munkamenet-cookie-val
http --session=app-test GET https://api.example.com/users/me
Httpie minden főbb hitelesítési típust támogat flag-ekkel: -a user:pass a Basic Auth-hoz, --auth-type=digest a Digesthez, --auth-type=bearer TOKEN a Bearer Tokenhez. Egyedi fejlécek a HeaderName:value formában adhatók hozzá a parancs bármely pontján.
A OAuth 2.0-val rendelkező API-k teszteléséhez a tokent az Authorization fejlécen keresztül adjuk át. A Httpie nem kezeli a token életciklusát magszinten — ezt egy külső szkript végzi. A http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource parancs egyenértékű a tokenes fejléc explicit megadásával.
Httpie ideális CI/CD pipeline-okhoz a nulla függőségnek (a Python kivételével) és az olvasható kimenetnek köszönhetően. A parancsok könnyen olvashatók a naplókban további feldolgozás nélkül. Az eszköz pip-pel telepíthető, és minden népszerű Docker-képben elérhető, beleértve az Alpine-t, az Ubuntut és a Jenkins és GitLab CI-rendszerek hivatalos képeit. Ez kényelmes választássá teszi a Httpie-t a REST API-k és mikroszolgáltatások automatizált teszteléséhez.
Tipikus forgatókönyv — az API állapotának ellenőrzése az alkalmazás deployja után. A Httpie kérést küld a health-végpontra, és nullától eltérő kóddal zárul, ha a válasz nem felel meg a vártnak. A --check-status flag automatikusan hibát ad vissza 300-as vagy nagyobb státuszkód esetén.
# Health check a deploy szkriptben
http --check-status GET https://api.staging.example.com/health
status:="ok" && \
echo "Az API egészséges" || \
echo "Az API-ellenőrzés sikertelen"
Httpie bővítményeket támogat a Package Index rendszeren keresztül. A bővítmények új hitelesítési típusokat, szerializációs formátumokat és átviteli csatornákat adnak hozzá. A telepítés pip-pel történik: pip install httpie-plugin-name. Telepítés után a bővítmény automatikusan aktiválódik a Httpie következő indításakor.
A Httpie a jq-hoz hasonló szűrést támogat a --pretty=format opcióval, és cURL-kompatibilis kimenetet a --print-pel. A --quiet flag kikapcsolja a színes kimenetet a jobb olvashatóság érdekében a CI-naplókban. A válasz programozott feldolgozásához használja a --body flag-et, amely csak a válasz törzsét jeleníti meg fejlécek nélkül.
# Mező kinyerése a JSON-válaszból jq segítségével
http GET https://api.example.com/users/1 | jq '.name'
# Csak a válasz törzsének megjelenítése (fejlécek nélkül)
http --body GET https://api.example.com/health
# Kötegelt küldés különböző adatokkal a fájlból
while read -r line; do
http POST https://api.example.com/items $line
done < items.txt
Httpie kimeneti formátumokat támogat a --print flag-gel: H (kérésfejlécek), B (kérés törzse), h (válaszfejlécek), b (válasz törzse). A --print=hb kombináció csak a válasz fejléceit és törzsét jeleníti meg. A --pretty=all flag színes formázást kapcsol be behúzással.
A Httpie testreszabást támogat a HTTPIE_COLORS változón keresztül. Állítson be színt az URL, a fejlécek, a JSON és a státuszkódok számára. Beépített témák állnak rendelkezésre: autumn, borland, fruity, monokai, native, tango a különböző terminálokhoz.
Programozott feldolgozáshoz használja a --body --pretty=none-t, amely nyers JSON-t ad vissza. A tömör kimenet hasznos a jq, sed és más feldolgozók számára API-tesztelés automatizálásakor szkriptekben.
Httpie több kimeneti formátumot támogat a --print flag-gel: H (kérésfejlécek), B (kérés törzse), h (válaszfejlécek), b (válasz törzse). A --print=hb kombináció csak a válasz fejléceit és törzsét jeleníti meg, a kapcsolatra vonatkozó metaadatok nélkül. A --pretty=all flag színes formázást kapcsol be behúzással az olvashatóság érdekében.
A Httpie a színek testreszabását a HTTPIE_COLORS környezeti változón keresztül támogatja. Beállíthat színt az URL, a fejlécek, a JSON-kulcsok és a válasz státuszkódjai számára. Beépített témák állnak rendelkezésre: autumn, borland, fruity, monokai, native és tango a különböző termináltípusokhoz és személyes preferenciákhoz.
A kimenet programozott feldolgozásához használja a --body --pretty=none flag-ek kombinációját, amely nyers JSON-t ad vissza színek és behúzás nélkül. A tömör kimenet hasznos a jq, sed és más konzolos feldolgozók számára REST API-tesztelés automatizálásakor shell szkriptekben.
Gyakran ismételt kérdések
Httpie olvashatóbb szintaxist kínál flag-ek nélkül az alapműveletekhez, automatikus JSON-szerializációt, a válasz színes kiemelését és beépített munkamenet-támogatást. A cURL nélkülözhetetlen marad az alacsony szintű műveletekhez: FTP, SMTP és nem szabványos protokollok használata.
Használja a -f flag-et (vagy --form): http -f POST example.com name=John file@~/photo.jpg. A Httpie automatikusan beállítja a Content-Type: multipart/form-data-t. A -f flag nélkül az adatok application/json-ként kerülnek elküldésre.
Igen, a Httpie támogatja a HTTPS-t. Önaláírt tanúsítványokhoz használja a --verify=no flag-et. Egyedi CA-fájl megadásához: --verify=/path/to/cert.pem. Alapértelmezés szerint a tanúsítvány-ellenőrzés be van kapcsolva.
Nem, a Httpie nem támogatja a WebSocket-et, és kizárólag a HTTP/HTTPS protokollra készült. WebSockethez használja a websocat vagy wscat eszközt. A Httpie a REST, GraphQL és fájlműveletekre összpontosít.
Használja a -d (download) flag-et: http -d GET https://example.com/file.zip. A Httpie a fájlt a Content-Disposition fejlécből vagy az URL-ből származó eredeti néven menti. Egyedi névhez adja meg a -o output.zip-t.
Összegzés
http [method] URL [key=value] [Header:value] nem igényel flag-eket a legtöbb kéréshez.Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is