Httpie — isang console HTTP client na may syntax na nababasa ng tao at may kulay na output, na idinisenyo para sa pagsubok ng API mula sa command line. Gumagamit ang tool ng intuitive na syntax: http GET https://api.example.com/users nang hindi kailangang magsasaad ng mga flag para sa mga header at katawan ng kahilingan. Ayon sa Httpie CLI Documentation (2026), sinusuportahan ng utility ang JSON bilang default, mga session, pagpapatotoo, at mga plugin.
Mga pangunahing punto
Httpie (o HTTPie) — isang console utility na nakasulat sa Python, na nagpapasimple sa pagpapadala ng mga HTTP na kahilingan kumpara sa cURL. Ang pangunahing pagkakaiba ay ang syntax na malapit sa natural na wika: ang mga argumento ay hinihiwalay ng mga puwang, ang mga header ay isinasaad ng colon, at ang data ng JSON — ng equals sign, nang hindi kinakailangang i-escape ang mga panipi.
Ang parehong POST na kahilingan sa cURL ay nangangailangan ng hindi bababa sa tatlong flag (-X, -H, -d) at manu-manong pag-escape ng JSON. Ginagawa ito ng Httpie ng tatlong salita nang walang flag, awtomatikong itinatakda ang Content-Type: application/json at kinukulayan ang output. Ang tugon ay pino-format bilang default na may indentation at syntax highlighting.
| Operasyon | cURL | Httpie |
|---|---|---|
| GET na kahilingan | 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 |
| Header | curl -H "Authorization: Bearer token123" https://api.example.com | http GET https://api.example.com Authorization:"Bearer token123" |
Httpie ay gumagamit ng nagkakaisang format ng command line nang walang flag para sa mga pangunahing parameter. Ang HTTP method ay isinasaad bilang unang argumento (GET, POST, PUT, DELETE, PATCH), ang URL — bilang pangalawa. Kung ang method ay hindi isinama, awtomatikong pipili ang Httpie ng GET (para sa mga kahilingang walang katawan) o POST (may katawan).
Authorization:"Bearer token".name=John age=30.active:=true tags:=["dev","test"].avatar@~/photo.jpg.Awtomatikong tinutukoy ng Httpie ang uri ng data: kung key=value ang ipinadala — ang katawan ay ipinapadala bilang JSON. Kung ang raw text ay ipinadala sa pamamagitan ng --raw — bilang plain text. Ang format ng form-data ay ina-activate ng flag na -f.
# POST na kahilingan na may JSON data at header
http POST https://api.example.com/users \
name="John Doe" \
email="john@example.com" \
role:="admin" \
Authorization:"Bearer test123"
# Tugon na may highlight at Pretty-print
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 42,
"name": "John Doe"
}
JSON serialization sa Httpie ay gumagana nang awtomatiko: ang halagang ipinadala bilang key=value ay nagiging string field ng JSON. Para sa mga numero at boolean, ginagamit ang key:=value. Ang mga nested na object ay ginagawa sa pamamagitan ng dot notation: address.city=Moscow.
Sinusuportahan ng Httpie ang format na multipart/form-data para sa pag-upload ng mga file at data sa pamamagitan ng syntax na key@path. Kung kailangang ipadala ang nilalaman ng file bilang raw na katawan ng kahilingan, ginagamit ang input redirection: http POST example.com < file.json. Para mag-download ng tugon sa isang file, ginagamit ang flag na -d (download).
# Pagpapadala ng JSON mula sa file
http POST https://api.example.com/users < user.json
# Pag-upload ng file sa pamamagitan ng multipart
http -f POST https://api.example.com/upload \
photo@~/photo.jpg \
description="Profile photo"
Mga session sa Httpie ay nag-iimbak ng estado sa pagitan ng mga kahilingan: cookies, mga header, at mga parameter ng pagpapatotoo. Ang session ay ginagawa gamit ang flag na --session=name. Ang data ng session ay iniimbak sa isang JSON file sa folder na ~/.httpie/sessions/. Ang session na may suffix na :readonly ay hindi ina-update pagkatapos ng kahilingan.
Una, isang POST sa /auth/login na may mga kredensyal ang isinasagawa — ang server ay nagbabalik ng session cookie. Ang lahat ng kasunod na kahilingan sa mga protektadong endpoint sa loob ng parehong session ay awtomatikong nagpapadala ng naka-imbak na cookie, na ginagaya ang pag-uugali ng browser kapag sinusubukan ang API ng mobile app.
# Hakbang 1: pagpapatotoo
http --session=app-test POST https://api.example.com/auth/login \
username="dev" password="secret"
# Hakbang 2: kahilingan na may naka-imbak na session cookie
http --session=app-test GET https://api.example.com/users/me
Httpie ay sumusuporta sa lahat ng pangunahing uri ng pagpapatotoo sa pamamagitan ng mga flag: -a user:pass para sa Basic Auth, --auth-type=digest para sa Digest, --auth-type=bearer TOKEN para sa Bearer Token. Ang mga custom na header ay idinaragdag bilang HeaderName:value saanman sa command.
Para sa pagsubok ng API na may OAuth 2.0, ang token ay ipinapadala sa pamamagitan ng Authorization header. Hindi pinamamahalaan ng Httpie ang lifecycle ng token sa antas ng kernel — ginagawa ito ng panlabas na script. Ang command na http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource ay katumbas ng malinaw na pagsasaad ng header na may token.
Httpie ay perpekto para sa mga CI/CD pipeline dahil sa zero dependencies (maliban sa Python) at nababasang output. Madaling nababasa ang mga command sa mga log nang walang karagdagang parsing. Ang tool ay ini-install sa pamamagitan ng pip at available sa lahat ng sikat na Docker image, kabilang ang Alpine, Ubuntu, at mga opisyal na image ng CI system na Jenkins at GitLab. Dahil dito, maginhawang pagpipilian ang Httpie para sa automated na pagsubok ng REST API at microservices.
Karaniwang senaryo — pagsusuri ng status ng API pagkatapos ng deploy ng application. Nagpapadala ang Httpie ng kahilingan sa health endpoint at nagtatapos na may di-zero na code kung ang tugon ay hindi tumutugma sa inaasahan. Ang flag na --check-status ay awtomatikong nagbabalik ng error sa status code na >= 300.
# Health check sa deploy script
http --check-status GET https://api.staging.example.com/health
status:="ok" && \
echo "Malusog ang API" || \
echo "Nabigo ang pagsusuri ng API"
Httpie ay sumusuporta sa mga plugin sa pamamagitan ng Package Index system. Ang mga plugin ay nagdaragdag ng mga bagong uri ng pagpapatotoo, mga format ng serialization, at mga transport. Ang pag-install ay ginagawa sa pamamagitan ng pip: pip install httpie-plugin-name. Pagkatapos ng pag-install, awtomatikong ina-activate ang plugin sa susunod na paglulunsad ng Httpie.
Sinusuportahan ng Httpie ang pag-filter na katulad ng jq sa pamamagitan ng option na --pretty=format at output na tugma sa cURL sa pamamagitan ng --print. Ang flag na --quiet ay nagpapatay ng may kulay na output para sa mas mahusay na pagbabasa sa mga CI log. Para sa programmatic na pagproseso ng tugon, gamitin ang flag na --body, na nagpapakita lamang ng katawan ng tugon nang walang mga header.
# Pagkuha ng field mula sa JSON na tugon gamit ang jq
http GET https://api.example.com/users/1 | jq '.name'
# Pagpapakita lamang ng katawan ng tugon (walang mga header)
http --body GET https://api.example.com/health
# Bulk na pagpapadala na may iba't ibang data mula sa file
while read -r line; do
http POST https://api.example.com/items $line
done < items.txt
Httpie ay sumusuporta sa mga format ng output sa pamamagitan ng flag na --print: H (mga header ng kahilingan), B (katawan ng kahilingan), h (mga header ng tugon), b (katawan ng tugon). Ang kombinasyon na --print=hb ay nagpapakita lamang ng mga header at katawan ng tugon. Ang flag na --pretty=all ay nag-a-activate ng may kulay na pag-format na may indentation.
Sinusuportahan ng Httpie ang pag-customize sa pamamagitan ng variable na HTTPIE_COLORS. Itakda ang kulay para sa URL, mga header, JSON, at mga status code. Available ang mga built-in na tema: autumn, borland, fruity, monokai, native, tango para sa iba't ibang terminal.
Para sa programmatic na pagproseso, gamitin ang --body --pretty=none, na nagbabalik ng raw na JSON. Ang compact na output ay kapaki-pakinabang para ipasa sa jq, sed, at iba pang parser kapag nag-automate ng pagsubok ng API sa mga script.
Httpie ay sumusuporta sa ilang format ng output sa pamamagitan ng flag na --print: H (mga header ng kahilingan), B (katawan ng kahilingan), h (mga header ng tugon), b (katawan ng tugon). Ang kombinasyon na --print=hb ay nagpapakita lamang ng mga header at katawan ng tugon, hindi kasama ang meta-information tungkol sa koneksyon. Ang flag na --pretty=all ay nag-a-activate ng may kulay na pag-format na may indentation para sa pagbabasa.
Sinusuportahan ng Httpie ang pag-customize ng mga kulay sa pamamagitan ng environment variable na HTTPIE_COLORS. Maaari mong itakda ang kulay para sa URL, mga header, mga JSON key, at mga status code ng tugon. Available ang mga built-in na tema: autumn, borland, fruity, monokai, native at tango para sa iba't ibang uri ng terminal at personal na kagustuhan.
Para sa programmatic na pagproseso ng output, gamitin ang kombinasyon ng mga flag na --body --pretty=none, na nagbabalik ng raw na JSON nang walang kulay at indentation. Ang compact na output ay kapaki-pakinabang para ipasa sa jq, sed, at iba pang console parser kapag nag-automate ng pagsubok ng REST API sa mga shell script.
Mga madalas itanong
Httpie ay nag-aalok ng mas nababasang syntax nang walang flag para sa mga pangunahing operasyon, awtomatikong JSON serialization, may kulay na highlight ng tugon, at built-in na suporta sa session. Ang cURL ay nananatiling kailangang-kailangan para sa mga low-level na operasyon: pagtatrabaho sa FTP, SMTP, at mga di-standard na protocol.
Gamitin ang flag na -f (o --form): http -f POST example.com name=John file@~/photo.jpg. Awtomatikong itatakda ng Httpie ang Content-Type: multipart/form-data. Kung wala ang flag na -f, ang data ay ipinapadala bilang application/json.
Oo, sinusuportahan ng Httpie ang HTTPS. Para sa mga self-signed certificate, gamitin ang flag na --verify=no. Para magsasaad ng custom na CA file: --verify=/path/to/cert.pem. Bilang default, aktibo ang pagpapatunay ng certificate.
Hindi, hindi sinusuportahan ng Httpie ang WebSocket at ito ay inilaan lamang para sa HTTP/HTTPS protocol. Para sa WebSocket, gamitin ang websocat o wscat. Nakatuon ang Httpie sa REST, GraphQL, at mga file operation.
Gamitin ang flag na -d (download): http -d GET https://example.com/file.zip. Ii-save ng Httpie ang file na may orihinal na pangalan mula sa Content-Disposition header o URL. Para sa custom na pangalan, isaad ang -o output.zip.
Buod
http [method] URL [key=value] [Header:value] ay hindi nangangailangan ng flag para sa karamihan ng mga kahilingan.Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din