Httpie — конзолни HTTP клијент са читљивом синтаксом и обојеним излазом, намењен тестирању API-ја из командне линије. Алат користи интуитивну синтаксу: http GET https://api.example.com/users без потребе да се наводе заставице за заглавља и тело захтева. Према Httpie CLI Documentation (2026), алат подразумевано подржава JSON, сесије, аутентификацију и додатке.
Главно
Httpie (или HTTPie) — конзолни алат написан у Python-у, који поједностављује слање HTTP захтева у поређењу са cURL-ом. Главна разлика је синтакса блиска природном језику: аргументи се одвајају размацима, заглавља се наводе двогачом, а JSON подаци — знаком једнакости, без избегавања наводника.
Исти POST захтев у cURL-у захтева најмање три заставице (-X, -H, -d) и ручно избегавање JSON-а. Httpie ради исто са три речи без заставица, аутоматски поставља Content-Type: application/json и боји излаз. Одговор се подразумевано форматира са увлачењем и истицањем синтаксе.
| Операција | cURL | Httpie |
|---|---|---|
| GET захтев | 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 |
| Заглавље | curl -H "Authorization: Bearer token123" https://api.example.com | http GET https://api.example.com Authorization:"Bearer token123" |
Httpie користи јединствени формат командне линије без заставица за основне параметре. HTTP метода се наводи као први аргумент (GET, POST, PUT, DELETE, PATCH), а URL — као други. Ако је метода изостављена, Httpie аутоматски бира GET (за захтеве без тела) или POST (са телом).
Authorization:"Bearer token".name=John age=30.active:=true tags:=["dev","test"].avatar@~/photo.jpg.Httpie аутоматски одређује тип података: ако је прослеђено key=value — тело се шаље као JSON. Ако је сирови текст прослеђен преко --raw — као обичан текст. Формат form-data се активира заставицом -f.
# POST захтев са JSON подацима и заглављем
http POST https://api.example.com/users \
name="John Doe" \
email="john@example.com" \
role:="admin" \
Authorization:"Bearer test123"
# Одговор са истицањем и Pretty-print
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 42,
"name": "John Doe"
}
JSON серијализација у Httpie-у ради аутоматски: вредност прослеђена као key=value постаје стринг поље JSON-а. За бројеве и булове користи се key:=value. Угњеждени објекти се праве тачкастом нотацијом: address.city=Moscow.
Httpie подржава формат multipart/form-data за отпремање датотека и података преко синтаксе key@path. Ако је потребно послати садржај датотеке као сирово тело захтева, користи се преусмеравање улаза: http POST example.com < file.json. За преузимање одговора у датотеку користи се заставица -d (download).
# Слање JSON-а из датотеке
http POST https://api.example.com/users < user.json
# Отпремање датотеке преко multipart-а
http -f POST https://api.example.com/upload \
photo@~/photo.jpg \
description="Profile photo"
Сесије у Httpie-у чувају стање између захтева: колачиће, заглавља и параметре аутентификације. Сесија се прави заставицом --session=name. Подаци сесије чувају се у JSON датотеци у фолдеру ~/.httpie/sessions/. Сесија са суфиксом :readonly се не ажурира после захтева.
Прво се извршава POST на /auth/login са акредитивима — сервер враћа колачић сесије. Сви наредни захтеви ка заштићеним крајњим тачкама у оквиру исте сесије аутоматски шаљу сачувани колачић, што опонаша понашање прегледача при тестирању API-ја мобилне апликације.
# Корак 1: аутентификација
http --session=app-test POST https://api.example.com/auth/login \
username="dev" password="secret"
# Корак 2: захтев са сачуваним колачићем сесије
http --session=app-test GET https://api.example.com/users/me
Httpie подржава све основне типове аутентификације преко заставица: -a user:pass за Basic Auth, --auth-type=digest за Digest, --auth-type=bearer TOKEN за Bearer Token. Прилагођена заглавља се додају као HeaderName:value на било ком месту у команди.
За тестирање API-ја са OAuth 2.0, токен се прослеђује кроз заглавље Authorization. Httpie не управља животним циклусом токена на нивоу језгра — то ради спољна скрипта. Команда http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource еквивалентна је експлицитном навођењу заглавља са токеном.
Httpie је идеалан за CI/CD pipeline-ове захваљујући нултим зависностима (осим Python-а) и читљивом излазу. Команде се лако читају у логовима без додатног парсирања. Алат се инсталира преко pip-а и доступан је у свим популарним Docker сликама, укључујући Alpine, Ubuntu и званичне слике CI система Jenkins и GitLab. То чини Httpie згодним избором за аутоматизовано тестирање REST API-ја и микросервиса.
Типичан сценарио — провера статуса API-ја после деплоја апликације. Httpie шаље захтев ка health-крајњој тачки и завршава се са ненултим кодом ако одговор не одговара очекиваном. Заставица --check-status аутоматски враћа грешку при статусном коду >= 300.
# Health check у деплој скрипти
http --check-status GET https://api.staging.example.com/health
status:="ok" && \
echo "API је здрав" || \
echo "Провера API-ја није успела"
Httpie подржава додатке преко система Package Index. Додаци доносе нове типове аутентификације, формате серијализације и транспорте. Инсталација се врши преко pip-а: pip install httpie-plugin-name. После инсталације, додатак се аутоматски активира при следећем покретању Httpie-а.
Httpie подржава филтрирање слично jq-у преко опције --pretty=format и излаз компатибилан са cURL-ом преко --print. Заставица --quiet искључује обојени излаз ради боље читљивости у CI логовима. За програмску обраду одговора користите заставицу --body, која приказује само тело одговора без заглавља.
# Издвајање поља из JSON одговора помоћу jq-а
http GET https://api.example.com/users/1 | jq '.name'
# Приказивање само тела одговора (без заглавља)
http --body GET https://api.example.com/health
# Серијско слање са различитим подацима из датотеке
while read -r line; do
http POST https://api.example.com/items $line
done < items.txt
Httpie подржава формате излаза преко заставице --print: H (заглавља захтева), B (тело захтева), h (заглавља одговора), b (тело одговора). Комбинација --print=hb приказује само заглавља и тело одговора. Заставица --pretty=all укључује обојено форматирање са увлачењем.
Httpie подржава прилагођавање преко променљиве HTTPIE_COLORS. Подесите боју за URL, заглавља, JSON и статусне кодове. Доступне су уграђене теме: autumn, borland, fruity, monokai, native, tango за различите терминале.
За програмску обраду користите --body --pretty=none, које враћа сирови JSON. Компактан излаз је користан за прослеђивање у jq, sed и друге парсере при аутоматизацији тестирања API-ја у скриптама.
Httpie подржава неколико формата излаза преко заставице --print: H (заглавља захтева), B (тело захтева), h (заглавља одговора), b (тело одговора). Комбинација --print=hb приказује само заглавља и тело одговора, изузимајући метаинформације о вези. Заставица --pretty=all укључује обојено форматирање са увлачењем ради читљивости.
Httpie подржава прилагођавање боја преко променљиве окружења HTTPIE_COLORS. Можете подесити боју за URL, заглавља, JSON кључеве и статусне кодове одговора. Доступне су уграђене теме: autumn, borland, fruity, monokai, native и tango за различите типове терминала и личне преференце.
За програмску обраду излаза користите комбинацију заставица --body --pretty=none, која враћа сирови JSON без боја и увлачења. Компактан излаз је користан за прослеђивање у jq, sed и друге конзолне парсере при аутоматизацији тестирања REST API-ја у shell скриптама.
Често постављана питања
Httpie нуди читљивију синтаксу без заставица за основне операције, аутоматску JSON серијализацију, обојено истицање одговора и уграђену подршку за сесије. cURL остаје незаменљив за операције ниског нивоа: рад са FTP-ом, SMTP-ом и нестандардним протоколима.
Користите заставицу -f (или --form): http -f POST example.com name=John file@~/photo.jpg. Httpie ће аутоматски поставити Content-Type: multipart/form-data. Без заставице -f подаци се шаљу као application/json.
Да, Httpie подржава HTTPS. За самопотписане сертификате користите заставицу --verify=no. За навођење прилагођене CA датотеке: --verify=/path/to/cert.pem. Подразумевано, провера сертификата је укључена.
Не, Httpie не подржава WebSocket и намењен је искључиво за HTTP/HTTPS протокол. За WebSocket користите websocat или wscat. Httpie се фокусира на REST, GraphQL и операције са датотекама.
Користите заставицу -d (download): http -d GET https://example.com/file.zip. Httpie ће сачувати датотеку са оригиналним именом из заглавља Content-Disposition или из URL-а. За прилагођено име наведите -o output.zip.
Закључак
http [method] URL [key=value] [Header:value] не захтева заставице за већину захтева.Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође