تحويل curl إلى Ruby
يقوم curl2code بتحويل أوامر curl إلى كود Ruby باستخدام مكتبة net/http القياسية. يتم تشغيل كل شيء محلياً في متصفحك عبر WebAssembly لخصوصية تامة. إذا كنت تفضل Python، فراجع محول curl إلى Python. لـ Elixir، راجع curl إلى Elixir. أدناه أمثلة Ruby عملية.
كيفية نسخ curl من متصفحك
- 1
افتح أدوات المطور (DevTools)
اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.
- 2
انتقل إلى علامة تبويب الشبكة (Network)
انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.
- 3
نسخ كـ cURL
انقر بزر الماوس الأيمن على الطلب ← Copy ← Copy as cURL. ثم قم بلصقه أعلاه.
الأسئلة الشائعة
ما هي حزمة net/http في Ruby؟
تعد net/http في Ruby عميل HTTP للمكتبة القياسية المضمنة في كل تثبيت لـ Ruby. تتعامل مع GET، و POST، ورفع الملفات متعددة الأجزاء، و SSL، والترويسات المخصصة. لا حاجة لتثبيت أي gem. يدعم curl2code أيضاً HTTParty، وهي gem شهيرة تبسط أنماط HTTP الشائعة بواجهة برمجية نظيفة وتصريحية.
مقارنة بين net/http و HTTParty و Faraday — أيهما يجب أن أستخدم؟
حزمة net/http مدمجة وخالية من التبعيات — رائعة للمهام والسكربتات البسيطة. HTTParty توفر DSL نظيفاً مع تحليل JSON تلقائي. Faraday توفر برمجيات وسيطة، وأنماط محولات، وأكبر قدر من المرونة. لبساطة مماثلة في السكربتات، راجع محول curl إلى Python أو محول curl إلى PHP.
كيفية التعامل مع المصادقة في Ruby؟
مع net/http: request["Authorization"] = "Bearer token". لمصادقة Basic: request.basic_auth("user", "pass"). تستخدم HTTParty headers: { "Authorization" => "Bearer token" } أو basic_auth: { username: "user", password: "pass" }. يتعامل curl2code مع كل من أعلام -u والترويسات.
كيفية إرسال بيانات نموذج متعدد الأجزاء في Ruby؟
مع net/http، استخدم gem multipart-post أو قم ببناء جسم الطلب يدوياً باستخدام Net::HTTP::Post مع سلاسل الحدود. تبسط HTTParty ذلك باستخدام body: { file: File.open("path") }. يحول curl2code أعلام -F لكلا نوعي المكتبات.
كيفية التعامل مع أخطاء HTTP في Ruby؟
مع net/http، تحقق من response.is_a?(Net::HTTPSuccess) أو استخدم response.value التي تثير استثناءً عند الحالات غير 2xx. تعيد HTTParty كائن استجابة مع دوال .success? و .code. للاتصالات المستمرة، قم بإنقاذ (rescue) Errno::ECONNREFUSED و Net::ReadTimeout.
كيفية إجراء طلبات HTTP متزامنة في Ruby؟
المكتبة القياسية في Ruby متزامنة. استخدم Thread.new { ... } للتزامن الأساسي أو gem concurrent-ruby لتجمعات الخيوط (thread pools). لـ I/O غير متزامن، استخدم async-http مع gem Async. توفر Typhoeus جدولة طلبات متوازية. لدعم مدمج لعدم التزامن، راجع محول curl إلى Elixir.
كيفية ضبط المهلات في Ruby؟
مع net/http: http.open_timeout = 10 (للاتصال) و http.read_timeout = 30 (للاستجابة). تقبل HTTParty خيار timeout: 30. هذه تقابل --connect-timeout و --max-time في curl. اضبط المهلات دائماً لتجنب تعليق الطلبات إلى أجل غير مسمى.
كيفية استخدام بروكسي في Ruby؟
مع net/http: Net::HTTP.new(host, port, proxy_host, proxy_port). أو اضبط متغيرات البيئة http_proxy و https_proxy — تحترمها Ruby تلقائياً. تستخدم HTTParty خيار http_proxy: 'http://proxy:8080'. يحول curl2code أعلام -x إلى صيغة Ruby الصحيحة.
كيف يمكن إرسال طلب POST مع جسم JSON في Ruby؟
قم بتحويل أمر curl POST مثل curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL إلى Ruby باستخدام curl2code. يستخدم الكود الناتج Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json'). يقوم curl2code تلقائيًا باكتشاف وسوم -d/--data التي تحتوي على محتوى JSON ويضبط ترويسة Content-Type المناسبة في كود net/http.
كيف يمكن إضافة مصادقة Bearer token في Ruby؟
قم بتمرير curl -H "Authorization: Bearer YOUR_TOKEN" URL إلى curl2code وسيقوم بإنشاء كود net/http مع ترويسة المصادقة: req['Authorization'] = 'Bearer YOUR_TOKEN'. يكتشف curl2code رموز Bearer من كل من وسوم -H "Authorization: Bearer ..." و --oauth2-bearer. بالنسبة لـ Basic auth، استخدم -u user:pass.
كيف يمكن ضبط ترويسة Content-Type في Ruby؟
يقوم curl2code بتحويل curl -H "Content-Type: application/json" URL إلى كود net/http مع الترويسة المناسبة: req['Content-Type'] = 'application/json'. بالنسبة لبيانات -d، يستخدم curl افتراضيًا application/x-www-form-urlencoded؛ أما بالنسبة لرفع النماذج باستخدام -F، فإنه يستخدم multipart/form-data. يقوم curl2code بربط كل منها بـ API الصحيح في net/http.