Httpie: यह क्या है, कमांड लाइन के लिए HTTP क्लाइंट

लेखक: IT Sectr प्रकाशित: 2026-05-08 पढ़ने का समय: 8 मिनट

Httpie मानव-पठनीय सिंटैक्स और रंगीन आउटपुट वाला एक कंसोल HTTP क्लाइंट है, जिसे कमांड लाइन से API परीक्षण के लिए डिज़ाइन किया गया है। यह टूल सहज सिंटैक्स का उपयोग करता है: http GET https://api.example.com/users — हेडर और रिक्वेस्ट बॉडी के लिए फ्लैग निर्दिष्ट करने की आवश्यकता के बिना। Httpie CLI Documentation (2026) के अनुसार, यह उपयोगिता डिफ़ॉल्ट रूप से JSON, सेशन, प्रमाणीकरण और प्लगइन का समर्थन करती है।

मुख्य बिंदु

  • Httpie पठनीय सिंटैक्स, रंगीन हाइलाइटिंग और बिल्ट-इन JSON सीरियलाइज़ेशन के साथ cURL का आधुनिक विकल्प है।
  • सिंटैक्स रिक्वेस्ट योजना के अनुसार बनती है: http [method] URL [header:value] [key=value] — अतिरिक्त फ्लैग के बिना।
  • डिफ़ॉल्ट रूप से JSON — रिक्वेस्ट बॉडी को JSON ऑब्जेक्ट माना जाता है, Content-Type हेडर स्वचालित रूप से सेट होता है।
  • सेशन रिक्वेस्ट के बीच कुकीज़ और हेडर सहेजते हैं, जो प्रमाणित एंडपॉइंट के परीक्षण के लिए सुविधाजनक है।
  • प्लगइन अतिरिक्त फ़ॉर्मेट, प्रमाणीकरण प्रकार और कस्टम ट्रांसपोर्ट के समर्थन के साथ Httpie का विस्तार करते हैं।

Httpie क्या है और यह cURL से कैसे अलग है

Httpie (या HTTPie) Python में लिखी गई एक कमांड-लाइन उपयोगिता है जो cURL की तुलना में HTTP रिक्वेस्ट भेजने को सरल बनाती है। मुख्य अंतर प्राकृतिक भाषा के करीब का सिंटैक्स है: आर्गुमेंट्स रिक्त स्थान से अलग होते हैं, हेडर कोलन से निर्दिष्ट होते हैं, और JSON डेटा कोट्स को एस्केप किए बिना बराबर चिह्न से निर्दिष्ट होता है।

cURL और Httpie की तुलना

cURL में एक ही POST रिक्वेस्ट के लिए कम से कम तीन फ्लैग (-X, -H, -d) और मैनुअल JSON एस्केपिंग की आवश्यकता होती है। Httpie बिना फ्लैग के तीन शब्दों में यही करता है, स्वचालित रूप से Content-Type: application/json सेट करता है और आउटपुट को हाइलाइट करता है। प्रतिक्रिया डिफ़ॉल्ट रूप से इंडेंटेशन और सिंटैक्स हाइलाइटिंग के साथ फ़ॉर्मेट होती है।

ऑपरेशनcURLHttpie
GET रिक्वेस्टcurl 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
हेडरcurl -H "Authorization: Bearer token123" https://api.example.comhttp GET https://api.example.com Authorization:"Bearer token123"

Httpie में रिक्वेस्ट का सिंटैक्स

Httpie मुख्य पैरामीटर के लिए बिना फ्लैग के कमांड लाइन का एक समान प्रारूप उपयोग करता है। HTTP मेथड पहले आर्गुमेंट (GET, POST, PUT, DELETE, PATCH) के रूप में निर्दिष्ट होती है, URL दूसरे के रूप में। यदि मेथड छोड़ दी जाती है, तो Httpie स्वचालित रूप से GET (बिना बॉडी वाली रिक्वेस्ट के लिए) या POST (बॉडी के साथ) चुनता है।

आर्गुमेंट्स के प्रकार

  • Header:Value — कोलन के साथ रिक्वेस्ट हेडर, कोलन के बाद कोई रिक्त स्थान नहीं: Authorization:"Bearer token"
  • key=value — रिक्वेस्ट बॉडी में JSON ऑब्जेक्ट के फ़ील्ड: name=John age=30
  • key:=value — गैर-स्ट्रिंग JSON मान (संख्या, बूलियन, ऐरे): active:=true tags:=["dev","test"]
  • key@file — फ़ाइल से मान लोड करना: avatar@~/photo.jpg

Httpie डेटा प्रकार स्वचालित रूप से निर्धारित करता है: यदि key=value दिया जाता है, तो बॉडी JSON के रूप में भेजी जाती है। यदि --raw के माध्यम से रॉ टेक्स्ट दिया जाता है, तो इसे सादे टेक्स्ट के रूप में भेजा जाता है। form-data प्रारूप -f फ्लैग से सक्रिय होता है।

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

JSON और फ़ाइलों के साथ काम करना

Httpie में JSON सीरियलाइज़ेशन स्वचालित रूप से काम करता है: key=value के रूप में दिया गया मान JSON का स्ट्रिंग फ़ील्ड बन जाता है। संख्याओं और बूलियन मानों के लिए key:=value का उपयोग किया जाता है। नेस्टेड ऑब्जेक्ट डॉट नोटेशन से बनते हैं: address.city=Moscow

फ़ाइलें और बाइनरी डेटा अपलोड करना

Httpie key@path सिंटैक्स के माध्यम से फ़ाइलों और डेटा को अपलोड करने के लिए multipart/form-data प्रारूप का समर्थन करता है। यदि फ़ाइल की सामग्री को रिक्वेस्ट की रॉ बॉडी के रूप में भेजना है, तो इनपुट रीडायरेक्शन का उपयोग किया जाता है: http POST example.com < file.json। प्रतिक्रिया को फ़ाइल में डाउनलोड करने के लिए -d (download) फ्लैग का उपयोग किया जाता है।

bash
# फ़ाइल से 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 का परीक्षण करते समय ब्राउज़र के व्यवहार का अनुकरण करता है।

bash
# चरण 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 और Bearer Token

OAuth 2.0 वाले API के परीक्षण के लिए टोकन Authorization हेडर के माध्यम से भेजा जाता है। Httpie कोर स्तर पर टोकन के जीवनचक्र का प्रबंधन नहीं करता — यह एक बाहरी स्क्रिप्ट करती है। http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource कमांड टोकन के साथ हेडर को स्पष्ट रूप से निर्दिष्ट करने के बराबर है।

CI/CD स्क्रिप्ट में Httpie का उपयोग

Httpie शून्य निर्भरता (Python को छोड़कर) और पठनीय आउटपुट के कारण CI/CD पाइपलाइन के लिए आदर्श है। कमांड बिना अतिरिक्त पार्सिंग के लॉग में आसानी से पढ़ी जाती हैं। यह टूल pip के माध्यम से इंस्टॉल होता है और सभी लोकप्रिय Docker इमेज में उपलब्ध है, जिसमें Alpine, Ubuntu और Jenkins व GitLab की आधिकारिक CI इमेज शामिल हैं। यह Httpie को REST API और माइक्रोसर्विस के स्वचालित परीक्षण के लिए सुविधाजनक विकल्प बनाता है।

डिप्लॉय में health-एंडपॉइंट की जाँच

विशिष्ट परिदृश्य — ऐप्लिकेशन डिप्लॉय के बाद API की स्थिति की जाँच करना। Httpie health-एंडपॉइंट पर रिक्वेस्ट भेजता है और यदि प्रतिक्रिया अपेक्षित नहीं होती तो गैर-शून्य कोड के साथ समाप्त होता है। --check-status फ्लैग स्टेटस कोड >= 300 पर स्वचालित रूप से त्रुटि लौटाता है।

bash
# डिप्लॉय स्क्रिप्ट में health check
http --check-status GET https://api.staging.example.com/health
    status:="ok" && \
    echo "API स्वस्थ है" || \
    echo "API जाँच विफल"

Httpie की उन्नत क्षमताएँ और प्लगइन

Httpie Package Index प्रणाली के माध्यम से प्लगइन का समर्थन करता है। प्लगइन नए प्रमाणीकरण प्रकार, सीरियलाइज़ेशन फ़ॉर्मेट और ट्रांसपोर्ट जोड़ते हैं। इंस्टॉलेशन pip के माध्यम से किया जाता है: pip install httpie-plugin-name। इंस्टॉलेशन के बाद प्लगइन Httpie के अगले लॉन्च पर स्वचालित रूप से सक्रिय हो जाता है।

लोकप्रिय Httpie प्लगइन

  • httpie-jwt-auth — refresh token तंत्र के माध्यम से JWT टोकन की स्वचालित प्राप्ति और नवीनीकरण।
  • httpie-oauth — टोकन के लिए स्वचालित कोड विनिमय के साथ OAuth 2.0 Client Credentials और Authorization Code फ़्लो का समर्थन।
  • httpie-editor — भेजने से पहले रिक्वेस्ट बॉडी को टेक्स्ट एडिटर (vim, nano, VS Code) में खोलता है।
  • httpie-image — प्रतिक्रिया से छवियों को सीधे टर्मिनल में प्रदर्शित करता है (kitty या iTerm2 की आवश्यकता है)।

स्क्रिप्टिंग और आउटपुट पार्सिंग

Httpie --pretty=format विकल्प के माध्यम से jq-जैसी फ़िल्टरिंग और --print के माध्यम से cURL-संगत आउटपुट का समर्थन करता है। --quiet फ्लैग CI लॉग में बेहतर पठनीयता के लिए रंगीन आउटपुट बंद कर देता है। प्रतिक्रिया की प्रोग्रामेटिक प्रोसेसिंग के लिए --body फ्लैग का उपयोग करें, जो हेडर के बिना केवल प्रतिक्रिया बॉडी आउटपुट करता है।

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

JSON प्रारूप में आउटपुट

प्रोग्रामेटिक प्रोसेसिंग के लिए --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।

बिना फ़ॉर्मेटिंग के JSON प्रारूप में आउटपुट

आउटपुट की प्रोग्रामेटिक प्रोसेसिंग के लिए --body --pretty=none फ्लैग संयोजन का उपयोग करें, जो बिना रंग और इंडेंटेशन के रॉ JSON लौटाता है। शेल स्क्रिप्ट में REST API परीक्षण को स्वचालित करते समय कॉम्पैक्ट आउटपुट jq, sed और अन्य कंसोल पार्सर में पास करने के लिए उपयोगी है।

अक्सर पूछे जाने वाले प्रश्न

Httpie मानक cURL से बेहतर क्यों है?

Httpie बुनियादी ऑपरेशन के लिए फ्लैग के बिना अधिक पठनीय सिंटैक्स, स्वचालित JSON सीरियलाइज़ेशन, प्रतिक्रिया की रंगीन हाइलाइटिंग और बिल्ट-इन सेशन समर्थन प्रदान करता है। cURL निम्न-स्तरीय ऑपरेशन के लिए अपरिहार्य रहता है: FTP, SMTP और गैर-मानक प्रोटोकॉल के साथ काम करना।

Httpie के माध्यम से form-data कैसे भेजें?

-f फ्लैग (या --form) का उपयोग करें: http -f POST example.com name=John file@~/photo.jpg। Httpie स्वचालित रूप से Content-Type: multipart/form-data सेट करेगा। -f फ्लैग के बिना डेटा application/json के रूप में भेजा जाता है।

क्या Httpie HTTPS और प्रमाणपत्रों का समर्थन करता है?

हाँ, Httpie HTTPS का समर्थन करता है। स्व-हस्ताक्षरित प्रमाणपत्रों के लिए --verify=no फ्लैग का उपयोग करें। कस्टम CA फ़ाइल निर्दिष्ट करने के लिए: --verify=/path/to/cert.pem। डिफ़ॉल्ट रूप से प्रमाणपत्र सत्यापन सक्षम है।

क्या WebSocket के लिए Httpie का उपयोग किया जा सकता है?

नहीं, Httpie WebSocket का समर्थन नहीं करता और विशेष रूप से HTTP/HTTPS प्रोटोकॉल के लिए है। WebSocket के लिए websocat या wscat का उपयोग करें। Httpie REST, GraphQL और फ़ाइल ऑपरेशन पर केंद्रित है।

Httpie के माध्यम से प्रतिक्रिया को फ़ाइल में कैसे सहेजें?

-d (download) फ्लैग का उपयोग करें: http -d GET https://example.com/file.zip। Httpie फ़ाइल को Content-Disposition हेडर या URL से मूल नाम के साथ सहेजेगा। कस्टम नाम के लिए -o output.zip निर्दिष्ट करें।

निष्कर्ष

  • Httpie — सहज सिंटैक्स, डिफ़ॉल्ट रूप से JSON और रंगीन आउटपुट वाला कंसोल HTTP क्लाइंट।
  • मूल सिंटैक्स http [method] URL [key=value] [Header:value] अधिकांश रिक्वेस्ट के लिए फ्लैग की आवश्यकता नहीं होती।
  • JSON सीरियलाइज़ेशन स्वचालित है: key=value JSON फ़ील्ड बन जाता है, key:=value संख्याओं और बूलियन मानों के लिए।
  • सेशन प्रमाणित एंडपॉइंट के परीक्षण के लिए रिक्वेस्ट के बीच कुकीज़ और हेडर सहेजते हैं।
  • प्रमाणीकरण --auth-type फ्लैग के माध्यम से Basic, Digest, Bearer और कस्टम योजनाओं का समर्थन करता है।
  • CI/CD एकीकरण --check-status और शून्य निर्भरता के साथ Httpie को डिप्लॉय स्क्रिप्ट के लिए सुविधाजनक बनाता है।
  • फ़ाइल अपलोड -f फ्लैग और key@file सिंटैक्स के साथ multipart form-data के माध्यम से।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें