Httpie मानव-पठनीय सिंटैक्स और रंगीन आउटपुट वाला एक कंसोल HTTP क्लाइंट है, जिसे कमांड लाइन से API परीक्षण के लिए डिज़ाइन किया गया है। यह टूल सहज सिंटैक्स का उपयोग करता है: http GET https://api.example.com/users — हेडर और रिक्वेस्ट बॉडी के लिए फ्लैग निर्दिष्ट करने की आवश्यकता के बिना। Httpie CLI Documentation (2026) के अनुसार, यह उपयोगिता डिफ़ॉल्ट रूप से JSON, सेशन, प्रमाणीकरण और प्लगइन का समर्थन करती है।
मुख्य बिंदु
Httpie (या HTTPie) Python में लिखी गई एक कमांड-लाइन उपयोगिता है जो cURL की तुलना में HTTP रिक्वेस्ट भेजने को सरल बनाती है। मुख्य अंतर प्राकृतिक भाषा के करीब का सिंटैक्स है: आर्गुमेंट्स रिक्त स्थान से अलग होते हैं, हेडर कोलन से निर्दिष्ट होते हैं, और JSON डेटा कोट्स को एस्केप किए बिना बराबर चिह्न से निर्दिष्ट होता है।
cURL में एक ही POST रिक्वेस्ट के लिए कम से कम तीन फ्लैग (-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 फ्लैग से सक्रिय होता है।
# JSON डेटा और हेडर के साथ POST रिक्वेस्ट
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"
}
Httpie में JSON सीरियलाइज़ेशन स्वचालित रूप से काम करता है: key=value के रूप में दिया गया मान JSON का स्ट्रिंग फ़ील्ड बन जाता है। संख्याओं और बूलियन मानों के लिए key:=value का उपयोग किया जाता है। नेस्टेड ऑब्जेक्ट डॉट नोटेशन से बनते हैं: address.city=Moscow।
Httpie key@path सिंटैक्स के माध्यम से फ़ाइलों और डेटा को अपलोड करने के लिए multipart/form-data प्रारूप का समर्थन करता है। यदि फ़ाइल की सामग्री को रिक्वेस्ट की रॉ बॉडी के रूप में भेजना है, तो इनपुट रीडायरेक्शन का उपयोग किया जाता है: 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 फ्लैग से बनाया जाता है। सेशन डेटा ~/.httpie/sessions/ फ़ोल्डर में JSON फ़ाइल में संग्रहीत होता है। :readonly सफ़िक्स वाला सेशन रिक्वेस्ट के बाद अपडेट नहीं होता।
पहले क्रेडेंशियल के साथ /auth/login पर POST रिक्वेस्ट भेजी जाती है — सर्वर सेशन कुकी लौटाता है। उसी सेशन के भीतर संरक्षित एंडपॉइंट पर बाद की सभी रिक्वेस्ट स्वचालित रूप से सहेजी गई कुकी भेजती हैं, जो मोबाइल ऐप के 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 फ्लैग के माध्यम से सभी मुख्य प्रमाणीकरण प्रकारों का समर्थन करता है: Basic Auth के लिए -a user:pass, Digest के लिए --auth-type=digest, Bearer Token के लिए --auth-type=bearer TOKEN। कस्टम हेडर को HeaderName:value के रूप में कमांड में कहीं भी जोड़ा जाता है।
OAuth 2.0 वाले API के परीक्षण के लिए टोकन Authorization हेडर के माध्यम से भेजा जाता है। Httpie कोर स्तर पर टोकन के जीवनचक्र का प्रबंधन नहीं करता — यह एक बाहरी स्क्रिप्ट करती है। http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource कमांड टोकन के साथ हेडर को स्पष्ट रूप से निर्दिष्ट करने के बराबर है।
Httpie शून्य निर्भरता (Python को छोड़कर) और पठनीय आउटपुट के कारण CI/CD पाइपलाइन के लिए आदर्श है। कमांड बिना अतिरिक्त पार्सिंग के लॉग में आसानी से पढ़ी जाती हैं। यह टूल pip के माध्यम से इंस्टॉल होता है और सभी लोकप्रिय Docker इमेज में उपलब्ध है, जिसमें Alpine, Ubuntu और Jenkins व GitLab की आधिकारिक CI इमेज शामिल हैं। यह 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 --pretty=format विकल्प के माध्यम से jq-जैसी फ़िल्टरिंग और --print के माध्यम से cURL-संगत आउटपुट का समर्थन करता है। --quiet फ्लैग CI लॉग में बेहतर पठनीयता के लिए रंगीन आउटपुट बंद कर देता है। प्रतिक्रिया की प्रोग्रामेटिक प्रोसेसिंग के लिए --body फ्लैग का उपयोग करें, जो हेडर के बिना केवल प्रतिक्रिया बॉडी आउटपुट करता है।
# jq के साथ JSON प्रतिक्रिया से फ़ील्ड निकालना
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 लौटाता है। स्क्रिप्ट में API परीक्षण को स्वचालित करते समय कॉम्पैक्ट आउटपुट jq, sed और अन्य पार्सर में पास करने के लिए उपयोगी है।
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 लौटाता है। शेल स्क्रिप्ट में REST API परीक्षण को स्वचालित करते समय कॉम्पैक्ट आउटपुट jq, sed और अन्य कंसोल पार्सर में पास करने के लिए उपयोगी है।
अक्सर पूछे जाने वाले प्रश्न
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 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें