Httpie: ano ito, HTTP client para sa command line

May-akda: IT Sectr Nai-publish: 2026-05-08 Oras ng pagbabasa: 8 min

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 — isang modernong kapalit ng cURL na may nababasang syntax, may kulay na highlight, at built-in na JSON serialization.
  • Syntax ng kahilingan ay itinatayo ayon sa scheme: http [method] URL [header:value] [key=value] nang walang karagdagang flag.
  • JSON bilang default — ang katawan ng kahilingan ay itinuturing na JSON object, ang Content-Type header ay awtomatikong idinaragdag.
  • Mga session ay nag-iimbak ng cookies at mga header sa pagitan ng mga kahilingan, na maginhawa para sa pagsubok ng mga napatotohanang endpoint.
  • Mga plugin ay nagpapalawak ng Httpie na may suporta para sa mga karagdagang format, uri ng pagpapatotoo, at custom na transport.

Ano ang Httpie at paano ito naiiba sa cURL

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.

Paghahambing ng cURL at Httpie

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.

OperasyoncURLHttpie
GET na kahilingancurl 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
Headercurl -H "Authorization: Bearer token123" https://api.example.comhttp GET https://api.example.com Authorization:"Bearer token123"

Syntax ng mga kahilingan sa Httpie

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).

Mga uri ng argumento

  • Header:Value — mga header ng kahilingan na may colon, walang puwang pagkatapos ng colon: Authorization:"Bearer token".
  • key=value — mga field ng JSON object sa katawan ng kahilingan: name=John age=30.
  • key:=value — mga halaga ng JSON na hindi string (mga numero, boolean, array): active:=true tags:=["dev","test"].
  • key@file — pag-load ng halaga mula sa isang file: 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.

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

Paggawa sa JSON at mga file

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.

Pag-upload ng mga file at binary data

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).

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

Pamamahala ng mga session at cookies

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.

Halimbawa ng pagsubok ng session

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.

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

Pagpapatotoo at mga header

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.

OAuth 2.0 at Bearer Token

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.

Paggamit ng Httpie sa mga CI/CD script

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.

Pagsusuri ng health endpoint sa deploy

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.

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

Mga advanced na feature at plugin ng Httpie

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.

Mga sikat na plugin ng Httpie

  • httpie-jwt-auth — awtomatikong pagkuha at pag-renew ng mga JWT token sa pamamagitan ng mekanismo ng refresh token.
  • httpie-oauth — suporta para sa OAuth 2.0 Client Credentials at Authorization Code flow na may awtomatikong palitan ng code para sa token.
  • httpie-editor — binubuksan ang katawan ng kahilingan sa text editor (vim, nano, VS Code) bago ipadala.
  • httpie-image — ipinapakita ang mga larawan mula sa tugon nang direkta sa terminal (kailangan ng kitty o iTerm2).

Scripting at pag-parse ng output

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.

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

Mga format ng output at pag-customize

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.

Mga custom na scheme ng kulay

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.

Output sa format na JSON

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.

Mga format ng output at pag-customize ng hitsura

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.

Mga custom na scheme ng kulay

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.

Output sa format na JSON nang walang pag-format

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

Paano mas mahusay ang Httpie kaysa sa karaniwang cURL?

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.

Paano magpadala ng form-data sa pamamagitan ng Httpie?

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.

Sinusuportahan ba ng Httpie ang HTTPS at mga certificate?

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.

Maaari ko bang gamitin ang Httpie para sa WebSocket?

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.

Paano i-save ang tugon sa isang file sa pamamagitan ng Httpie?

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

  • Httpie — console HTTP client na may intuitive na syntax, JSON bilang default, at may kulay na output.
  • Pangunahing syntax http [method] URL [key=value] [Header:value] ay hindi nangangailangan ng flag para sa karamihan ng mga kahilingan.
  • JSON serialization ay awtomatiko: ang key=value ay nagiging JSON field, ang key:=value para sa mga numero at boolean.
  • Mga session ay nag-iimbak ng cookies at mga header sa pagitan ng mga kahilingan para sa pagsubok ng mga napatotohanang endpoint.
  • Pagpapatotoo ay sumusuporta sa Basic, Digest, Bearer, at mga custom na scheme sa pamamagitan ng flag na --auth-type.
  • CI/CD integration na may --check-status at zero dependencies ay ginagawang maginhawa ang Httpie para sa mga deploy script.
  • Pag-upload ng file sa pamamagitan ng multipart form-data na may flag na -f at syntax na key@file.

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.

Pag-usapan ang proyekto

Basahin din