كيف تستخدم HTTPie في عام 2025؟

HTTPie هو أداة سطر أوامر تسهل التفاعل مع خوادم HTTP وواجهات برمجة التطبيقات. تعلم كيفية استخدام HTTPie في 2025 لتقديم الطلبات، تحميل الملفات، إدارة الجلسات، والمزيد.

Amir Hassan

Amir Hassan

29 مايو 2025

كيف تستخدم HTTPie في عام 2025؟

HTTPie هو أداة سطر أوامر تتيح لك التفاعل مع خوادم HTTP بطريقة صديقة للبشر. يحتوي على بنية بسيطة ومعبرة، ويدعم JSON وبيانات النماذج، ويتعامل مع المصادقة ورؤوس الطلبات، ويعرض مخرجات ملونة ومنسقة. كما أن لديه بعض الميزات المتقدمة، مثل الجلسات والإضافات والوكلاء، مما يجعله أكثر قوة وتنوعًا.

في هذه المدونة، سأوضح لك كيفية تثبيت واستخدام HTTPie، وكيف يمكن أن يساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك بسهولة وكفاءة. سأشارك أيضًا بعض النصائح والحيل التي تعلمتها في الطريق، وبعض الموارد التي يمكنك استخدامها لمعرفة المزيد عن HTTPie.

زر

كيفية تثبيت HTTPie

الخطوة الأولى لاستخدام HTTPie هي تثبيته على نظامك. HTTPie مكتوب بلغة بايثون، ويمكنك تثبيته باستخدام pip، مدير حزم بايثون. للقيام بذلك، افتح الطرفية الخاصة بك وقم بتنفيذ الأمر التالي:

pip install --upgrade httpie

سيقوم هذا بتثبيت أحدث إصدار من HTTPie على نظامك، وسيقوم أيضًا بترقية أي إصدار موجود إذا كان لديك واحد. يمكنك التحقق من إصدار HTTPie عن طريق تشغيل:

http --version

يجب أن ترى شيئًا مثل هذا:

http 2.5.0
HTTPie - أداة CLI تشبه cURL للبشر.
https://httpie.io

إذا رأيت هذه المخرجات، تهانينا! لقد قمت بتثبيت HTTPie بنجاح وأنت مستعد لاستخدامه.

كيفية إرسال طلبات HTTP باستخدام HTTPie

البنية الأساسية لـ HTTPie هي:

http [flags] [METHOD] URL [ITEM [ITEM]]

حيث:

على سبيل المثال، لإرسال طلب GET إلى https://example.com/api/users، يمكنك ببساطة تشغيل:

http https://example.com/api/users

سيرسل هذا طلب GET إلى الرابط، ويعرض الاستجابة بطريقة ملونة ومنسقة. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 326
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"146-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

كما ترى، يعرض HTTPie خط حالة الاستجابة والرؤوس والجسم بطريقة واضحة وسهلة القراءة. كما يستخدم ألوانًا لتسليط الضوء على أجزاء مختلفة من الاستجابة، مثل الأخضر للرؤوس، والأزرق لمفاتيح JSON، والأصفر لقيم JSON.

يمكنك أيضًا إرسال طرق HTTP أخرى مع HTTPie، مثل POST، PUT، PATCH، أو DELETE، عن طريق تحديد الطريقة قبل الرابط. على سبيل المثال، لإرسال طلب POST إلى https://example.com/api/users مع بعض بيانات JSON، يمكنك تشغيل:

http POST https://example.com/api/users name=John email=john@example.com

سيرسل هذا طلب POST إلى الرابط، مع بيانات JSON التالية في جسم الطلب:

{
    "name": "John",
    "email": "john@example.com"
}

يمكنك أيضًا استخدام عامل التشغيل := لتحديد قيم JSON، مثل name:="John" أو age:=25. هذا مفيد عندما تريد إرسال قيم غير نصية، مثل الأرقام، أو القيم البولية، أو المصفوفات، أو الكائنات.

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع رمز حالة مختلف وجسم. سترى شيئًا مثل هذا:

HTTP/1.1 201 Created
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Location: /api/users/4
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "John",
    "email": "john@example.com"
}

كما ترى، يعرض HTTPie رمز حالة الاستجابة كـ 201 تم الإنشاء، مما يدل على أنه تم إنشاء مورد جديد على الخادم. كما يعرض رأس الموقع، الذي يشير إلى رابط المورد الجديد الذي تم إنشاؤه. يحتوي جسم الاستجابة على تمثيل JSON للمستخدم الجديد.

يمكنك استخدام نفس البنية لإرسال طرق HTTP الأخرى، مثل PUT، PATCH، أو DELETE، عن طريق استبدال اسم الطريقة. على سبيل المثال، لتحديث اسم المستخدم الذي يحمل id 4، يمكنك تشغيل:

http PATCH https://example.com/api/users/4 name=Jack

سيقوم هذا بإرسال طلب PATCH إلى الرابط، مع بيانات JSON التالية في جسم الطلب:

{
    "name": "Jack"
}

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع رمز حالة وجسم مختلفين. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "Jack",
    "email": "john@example.com"
}

كما ترى، يعرض HTTPie رمز حالة الاستجابة كـ 200 OK، مما يدل على أنه تم تحديث المورد بنجاح. يحتوي جسم الاستجابة على تمثيل JSON للمستخدم المحدث.

يمكنك أيضًا استخدام HTTPie لإرسال بيانات النموذج، عن طريق استخدام عامل التشغيل = بدلاً من عامل التشغيل :=. على سبيل المثال، لإرسال طلب POST إلى https://example.com/api/login مع بعض بيانات النموذج، يمكنك تشغيل:

http POST https://example.com/api/login username=John password=secret

سيرسل هذا طلب POST إلى الرابط، مع بيانات النموذج التالية في جسم الطلب:

username=John&password=secret

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع نوع محتوى وجسم مختلف. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 32
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"20-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

تسجيل الدخول ناجح. مرحبًا، جون!

كما ترى، يعرض HTTPie نوع محتوى الاستجابة كـ text/plain، مما يدل على أن جسم الاستجابة هو نص عادي. يحتوي جسم الاستجابة على رسالة بسيطة تؤكد تسجيل الدخول.

كيفية فحص جسم الاستجابة والرؤوس باستخدام HTTPie

إحدى الميزات الرائعة لـ HTTPie هي أنها تقوم تلقائيًا بتحليل وتنسيق جسم الاستجابة والرؤوس، اعتمادًا على نوع المحتوى. على سبيل المثال، إذا كانت الاستجابة هي JSON، سيعرضها HTTPie بطريقة جميلة وملونة، كما رأينا من قبل. إذا كانت الاستجابة هي HTML، سيعرضها HTTPie كنص خام، ولكن مع تمييز نحوي. إذا كانت الاستجابة هي صورة، سيعرضها HTTPie كبيانات ثنائية، ولكن مع تلميح لنوع الصورة وحجمها.

يمكنك أيضًا استخدام بعض الأعلام لتعديل كيفية عرض HTTPie للاستجابة. على سبيل المثال، يمكنك استخدام العلم -b أو --body لعرض جسم الاستجابة فقط، دون الرؤوس. يمكنك استخدام العلم -h أو --headers لعرض رؤوس الاستجابة فقط، دون الجسم. يمكنك استخدام العلم -p أو --print لتحديد أي أجزاء من الطلب والاستجابة يجب طباعتها، باستخدام الأحرف التالية:

على سبيل المثال، لعرض رؤوس الطلب وجسم الاستجابة فقط، يمكنك تشغيل:

http -p HB https://example.com/api/users

سيظهر لك شيء مثل هذا:

GET /api/users HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: example.com
User-Agent: HTTPie/2.5.0

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

كما ترى، يعرض HTTPie رؤوس الطلب وجسم الاستجابة، ولكن ليس رؤوس الاستجابة أو جسم الطلب.

يمكنك أيضًا استخدام العلم -j أو --json لفرض HTTPie على اعتبار الاستجابة كـ JSON، حتى لو لم يكن نوع المحتوى هو application/json. هذا مفيد عندما لا يرسل الخادم نوع المحتوى الصحيح، أو عندما تريد تحليل استجابة غير JSON كـ JSON. على سبيل المثال، لتحليل استجابة نص عادي كـ JSON، يمكنك تشغيل:

http -j https://example.com/api/hello

سيظهر لك شيء مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 13
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"d-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "hello": "world"
}

كما ترى، يقوم HTTPie بتحليل الاستجابة النصية كـ JSON، ويعرضها بطريقة جميلة وملونة.

يمكنك أيضًا استخدام العلم -o أو --output لحفظ جسم الاستجابة في ملف، بدلاً من عرضه على الطرفية. هذا مفيد عندما تريد تنزيل ملف من الخادم، مثل صورة أو PDF أو ملف ZIP. على سبيل المثال، لتنزيل صورة من https://example.com/api/image، يمكنك تشغيل:

http -o image.jpg https://example.com/api/image

سيقوم هذا بحفظ الصورة في ملف يسمى image.jpg في الدليل الحالي. يمكنك أيضًا استخدام العلم -d أو --download لإنشاء اسم ملف تلقائيًا بناءً على الرابط ونوع المحتوى. على سبيل المثال، لتنزيل نفس الصورة، يمكنك تشغيل:

http -d https://example.com/api/image

سيقوم هذا بحفظ الصورة في ملف يسمى image-20240208-054325.jpg في الدليل الحالي، باستخدام التاريخ والوقت كلاحقة.

كما ترى، توفر لك HTTPie العديد من الخيارات لفحص جسم الاستجابة والرؤوس، ولحفظ الاستجابة في ملف. يمكنك استخدام هذه الخيارات لاختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك، والتحقق من محتوى وشكل الاستجابة.

قيود HTTPie

HTTPie هي أداة سطر أوامر قوية وسهلة الاستخدام للتفاعل مع خوادم HTTP وواجهات برمجة التطبيقات. ومع ذلك، فإن لديها أيضًا بعض القيود، مثل:

لماذا يجب عليك استخدام Apidog

Apidog هي منصة متكاملة لتصميم واجهات برمجة التطبيقات، وتصحيح الأخطاء، والتطوير، والمحاكاة، والاختبار. تجمع بين وظائف Postman وSwagger وMock وJMeter في أداة واحدة. قد ترغب في استخدام Apidog إذا كنت تبحث عن:

الخطوة 1. افتح Apidog وانقر على "API جديدة" لإنشاء واجهة برمجة التطبيقات جديدة للاختبار.

الخطوة 2. اختر طريقة HTTP التي ستستخدمها لواجهة برمجة التطبيقات وأدخل رابط نقطة النهاية.

الخطوة 3. أدخل المعلومات اللازمة مثل المعلمات وفقًا لمواصفات واجهة برمجة التطبيقات وانقر على زر "إرسال" لإرسال طلب واجهة برمجة التطبيقات والحصول على الاستجابة.

استنتاج

HTTPie هي أداة قوية وسهلة الاستخدام تتيح لك التواصل مع خوادم HTTP وواجهات برمجة التطبيقات من خلال الطرفية الخاصة بك. تحتوي على العديد من الميزات والخيارات التي تجعل من السهل تخصيص وتنسيق طلباتك واستجاباتك. يمكنك استخدام HTTPie لاختبار، وتصحيح، واستكشاف واجهات برمجة التطبيقات، بالإضافة إلى أتمتة المهام وسير العمل.

إذا كنت ترغب في استخدام منصة أكثر تكاملاً لتصميم، وتصحيح، وتطوير، ومحاكاة، واختبار واجهات برمجة التطبيقات، يمكنك أيضًا تجربة Apidog. Apidog هي أداة تربط جميع مراحل دورة حياة واجهة برمجة التطبيقات، من التصميم إلى الاختبار، والمحاكاة، والوثائق.

Explore more

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

إذا كنت متحمسًا لإصدار Anthropic الأخير، Claude 3.7 Sonnet، وترغب في استكشاف قدراته من خلال واجهة برمجة التطبيقات (API) أثناء اختباره باستخدام Apidog، فأنت في المكان الصحيح. 💡قبل أن نبدأ، دعني أعطيك لمحة سريعة: قم بتنزيل Apidog مجانًا اليوم لتسهيل عملية اختبار واجهة برمجة التطبيقات الخاصة بك، خاصة لاستكشاف ميزات Claude 3.7 Sonnet القوية - مثالي للمطورين الذين يرغبون في اختبار نماذج الذكاء الاصطناعي المتطورة مثل هذا!زر لنبدأ بشرح لماذا يعد Claude 3.7 Sonnet مهمًا. كشفت Anthropic مؤخرًا عن هذا

25 فبراير 2025

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

تعلم كيفية إنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها بأداة تسمى APIdog. Spring Boot هو إطار عمل يسهل تطوير الويب باستخدام Java. Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك.

29 فبراير 2024

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

تحويل واجهات برمجة التطبيقات SOAP إلى REST أصبح أكثر وضوحًا. تقدم واجهات REST مرونة وقابلية للتوسع وبساطة في تعزيز الاتصال بين نظامين أو برنامجين. في هذه المقالة، اكتشف ما تحتاجه لتحويل واجهات SOAP إلى REST!

29 فبراير 2024

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات