Httpie: mi ez, HTTP-kliens a parancssorhoz

Szerző: IT Sectr Megjelenés: 2026-05-08 Olvasási idő: 8 perc

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 — a cURL modern utódja, olvasható szintaxissal, színes kiemeléssel és beépített JSON-szerializációval.
  • Szintaxis a kérés a következő séma szerint épül fel: http [method] URL [header:value] [key=value] további flag-ek nélkül.
  • JSON alapértelmezés szerint — a kérés törzse JSON-objektumként értelmeződik, a Content-Type fejléc automatikusan hozzáadódik.
  • Munkamenetek cookie-kat és fejléceket tárolnak a kérések között, ami kényelmes a hitelesített végpontok teszteléséhez.
  • Bővítmények kiterjesztik a Httpie-t további formátumok, hitelesítési típusok és egyedi átviteli csatornák támogatásával.

Mi az a Httpie és miben különbözik a cURL-től

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.

A cURL és a Httpie összehasonlítása

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űveletcURLHttpie
GET-kéréscurl 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
Fejléccurl -H "Authorization: Bearer token123" https://api.example.comhttp GET https://api.example.com Authorization:"Bearer token123"

Kérések szintaxisa a Httpie-ban

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.

Argumentumtípusok

  • Header:Value — kérésfejlécek kettősponttal, szóköz nélkül a kettőspont után: Authorization:"Bearer token".
  • key=value — a JSON-objektum mezői a kérés törzsében: name=John age=30.
  • key:=value — nem sztring JSON-értékek (számok, logikai értékek, tömbök): active:=true tags:=["dev","test"].
  • key@file — érték betöltése fájlból: 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.

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

Munka JSON-nal és fájlokkal

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.

Fájlok és bináris adatok feltöltése

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.

bash
# 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 és cookie-k kezelése

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.

Munkamenet-tesztelés példája

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.

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

Hitelesítés és fejlécek

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.

OAuth 2.0 és Bearer Token

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.

A Httpie használata CI/CD szkriptekben

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.

Health-végpont ellenőrzése deploy során

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.

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

A Httpie haladó funkciói és bővítményei

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.

Népszerű Httpie-bővítmények

  • httpie-jwt-auth — JWT-tokenek automatikus lekérése és megújítása a refresh token mechanizmus segítségével.
  • httpie-oauth — OAuth 2.0 Client Credentials és Authorization Code folyamat támogatása a kód automatikus tokenre cserélésével.
  • httpie-editor — a kérés törzsét szövegszerkesztőben (vim, nano, VS Code) nyitja meg küldés előtt.
  • httpie-image — a válasz képeit közvetlenül a terminálban jeleníti meg (kitty vagy iTerm2 szükséges).

Szkriptelés és kimenetfeldolgozás

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.

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

Kimeneti formátumok és testreszabás

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.

Egyedi színkombinációk

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.

Kimenet JSON formátumban

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.

Kimeneti formátumok és a megjelenés testreszabása

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.

Egyedi színkombinációk

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.

Kimenet JSON formátumban formázás nélkül

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

Miben jobb a Httpie a szabványos cURL-nél?

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.

Hogyan küldhetek form-data-t a Httpie-n keresztül?

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.

Támogatja-e a Httpie a HTTPS-t és a tanúsítványokat?

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.

Használhatom a Httpie-t WebSockethez?

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.

Hogyan menthetem a választ fájlba a Httpie-n keresztül?

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

  • Httpie — konzolos HTTP-kliens intuitív szintaxissal, alapértelmezett JSON-nal és színes kimenettel.
  • Alapszintaxis http [method] URL [key=value] [Header:value] nem igényel flag-eket a legtöbb kéréshez.
  • JSON-szerializáció automatikus: a key=value JSON-mezővé válik, a key:=value számokhoz és logikai értékekhez.
  • Munkamenetek cookie-kat és fejléceket tárolnak a kérések között a hitelesített végpontok teszteléséhez.
  • Hitelesítés Basic, Digest, Bearer és egyedi sémákat támogat a --auth-type flag-gel.
  • CI/CD-integráció a --check-status flag-gel és nulla függőséggel kényelmessé teszi a Httpie-t deploy szkriptekhez.
  • Fájlfeltöltés multipart form-data segítségével a -f flag-gel és a key@file szintaxissal.

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.

Projekt megbeszélése

Olvassa el is