"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء طلبات HTTP متعددة الأجزاء باستخدام Gomultipart في Golang؟

كيفية إنشاء طلبات HTTP متعددة الأجزاء باستخدام Gomultipart في Golang؟

تم النشر بتاريخ 2024-11-16
تصفح:367

How to Create Multipart HTTP Requests with Gomultipart in Golang?

كيفية استخدام الأجزاء المتعددة في Go

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

الحل

لإنشاء طلب نموذج متعدد الأجزاء، اتبع الخطوات التالية:

  1. إنشاء طلب فوري bytes.Buffer وكائن multipart.Writer.
  2. استخدم multipart.Writer لإنشاء كائنات multipart.Part، واحد لكل جزء من الطلب.
  3. قم بتعيين رأس نوع المحتوى لـ الطلب إلى القيمة التي تم إرجاعها بواسطة الكاتب.FormDataContentType().
  4. اكتب محتويات أجزاء الطلب إلى multipart.Writer.
  5. استدعاء الكاتب.Close() لإكمال الطلب.

مثال

في المثال الخاص بك، يمكنك إنشاء طلب مختلط متعدد الأجزاء على النحو التالي:

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)

part, err := writer.CreatePart(textproto.MIMEHeader{"Content-Type": {"application/json"}})
if err != nil {
    // handle error
}

part.Write(jsonStr)

writer.Close()

req, err := http.NewRequest("POST", "blabla", body)
if err != nil {
    // handle error
}

req.Header.Set("Content-Type", "multipart/mixed; boundary=" writer.Boundary())

نصيحة إضافية: استخدام cURL

يمكنك أيضًا إنشاء طلب متعدد الأجزاء باستخدام cURL مع الأمر التالي:

curl -F "field=value" -H "Content-Type: multipart/mixed; boundary=boundary" http://1.1.1.1/blabla
بيان الافراج أعيد طبع هذه المقالة على: 1729690430 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3