تحويل curl إلى Go

قم بتحويل أوامر curl إلى كود Go باستخدام حزمة net/http القياسية. يعمل curl2code بالكامل في متصفحك عبر WebAssembly — بياناتك تبقى خاصة. إذا كنت تفضل لغة ذات مستوى أعلى، فجرب محول curl إلى Python. لبرمجة الأنظمة، راجع curl إلى Rust. أدناه أمثلة Go جاهزة للاستخدام.

كيفية نسخ curl من متصفحك

  1. 1

    افتح أدوات المطور (DevTools)

    اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.

  2. 2

    انتقل إلى علامة تبويب الشبكة (Network)

    انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.

  3. 3

    نسخ كـ cURL

    انقر بزر الماوس الأيمن على الطلب ← CopyCopy as cURL. ثم قم بلصقه أعلاه.

الأسئلة الشائعة

ما هي حزمة net/http في Go؟

تعد net/http في Go عميل وخادم HTTP بمستوى إنتاجي مدمج في المكتبة القياسية. لا تتطلب أي تبعيات خارجية، وتدعم HTTP/2 افتراضياً، وتوفر تجميع الاتصالات، والمهلات، وتكوين TLS بشكل جاهز. إنها المكتبة الوحيدة التي يستخدمها curl2code لـ Go — لا حاجة لحزم خارجية.

مقارنة بين net/http وعملاء HTTP الخارجيين في Go — أيهما أستخدم؟

حزمة net/http في Go قوية بما يكفي لمعظم حالات الاستخدام — على عكس العديد من اللغات، المكتبة القياسية جاهزة للإنتاج. الخيارات الخارجية مثل resty تضيف سهولة (إعادة محاولة تلقائية، تسلسل) ولكنها تضيف تبعيات. لنهج مماثل يتضمن كل شيء، راجع محول curl إلى Rust (reqwest) أو محول curl إلى Python.

كيفية التعامل مع المصادقة في Go؟

اضبط ترويسة Authorization باستخدام req.Header.Set("Authorization", "Bearer "+token). لمصادقة Basic، استخدم req.SetBasicAuth(user, pass) التي تضبط الترويسة تلقائياً. يكتشف curl2code أعلام -u و -H 'Authorization: ...' وينتج كود Go الصحيح.

كيفية إرسال بيانات نموذج متعدد الأجزاء في Go؟

استخدم حزمة mime/multipart: أنشئ كاتباً باستخدام multipart.NewWriter(body)، وأضف الحقول باستخدام CreateFormField، والملف باستخدام CreateFormFile. اضبط Content-Type إلى writer.FormDataContentType(). يتعامل curl2code مع جميع تحويلات أعلام -F.

كيفية التعامل مع أخطاء HTTP في Go؟

تستخدم Go إرجاع الأخطاء الصريح: تحقق دائماً من if err != nil بعد http.Do(req). ثم تحقق من resp.StatusCode لأخطاء مستوى HTTP. استخدم دائماً defer resp.Body.Close() لمنع تسرب الموارد. هذا التعامل الصريح مع الأخطاء هو نمط أساسي في Go — لا توجد استثناءات ولا try/catch.

كيفية إجراء طلبات HTTP متزامنة في Go؟

استخدم goroutines مع sync.WaitGroup أو القنوات (channels). أطلق كل طلب في goroutine باستخدام go func() { ... }(). للتزامن المحدود، استخدم قناة سيمافور (semaphore channel). تعد goroutines في Go خفيفة الوزن — يمكنك بسهولة التعامل مع آلاف الطلبات المتزامنة. لأنماط تزامن مماثلة، راجع محول curl إلى Rust.

كيفية ضبط المهلات في عميل HTTP في Go؟

اضبط client.Timeout للموعد النهائي الإجمالي للطلب. للتحكم الدقيق، استخدم context.WithTimeout أو context.WithDeadline ومرر السياق إلى http.NewRequestWithContext. يتم تعيين --connect-timeout في curl إلى مهلة Transport.DialContext، و --max-time إلى client.Timeout.

كيفية تكوين بروكسي في Go؟

اضبط Transport.Proxy إلى http.ProxyURL(proxyUrl) في http.Transport مخصص. تحترم Go أيضاً متغيرات البيئة HTTP_PROXY و HTTPS_PROXY افتراضياً عبر http.ProxyFromEnvironment. يحول curl2code أعلام -x و --proxy إلى تكوين البروكسي المناسب في Go.

كيف يمكن إرسال طلب POST مع جسم JSON في Go؟

قم بتحويل أمر curl POST مثل curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL إلى Go باستخدام curl2code. يستخدم الكود الناتج http.Post(url, "application/json", bytes.NewBuffer(jsonData)). يقوم curl2code تلقائيًا باكتشاف وسوم -d/--data التي تحتوي على محتوى JSON ويضبط ترويسة Content-Type المناسبة في كود net/http.

كيف يمكن إضافة مصادقة Bearer token في Go؟

قم بتمرير curl -H "Authorization: Bearer YOUR_TOKEN" URL إلى curl2code وسيقوم بإنشاء كود net/http مع ترويسة المصادقة: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). يكتشف curl2code رموز Bearer من كل من وسوم -H "Authorization: Bearer ..." و --oauth2-bearer. بالنسبة لـ Basic auth، استخدم -u user:pass.

كيف يمكن ضبط ترويسة Content-Type في Go؟

يقوم curl2code بتحويل curl -H "Content-Type: application/json" URL إلى كود net/http مع الترويسة المناسبة: req.Header.Set("Content-Type", "application/json"). بالنسبة لبيانات -d، يستخدم curl افتراضيًا application/x-www-form-urlencoded؛ أما بالنسبة لرفع النماذج باستخدام -F، فإنه يستخدم multipart/form-data. يقوم curl2code بربط كل منها بـ API الصحيح في net/http.

روابط مفيدة

أدلة curl

تحويل curl إلى لغات أخرى