تحويل curl إلى Lua

يقوم curl2code بتحويل أوامر curl إلى كود Lua باستخدام مكتبة http. تتم عملية التحويل في متصفحك عبر WebAssembly لخصوصية تامة. لـ Python، راجع محول curl إلى Python. لـ Ruby، راجع curl إلى Ruby. أدناه أمثلة Lua عملية.

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

  1. 1

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

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

  2. 2

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

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

  3. 3

    نسخ كـ cURL

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

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

ما هي Lua http؟

تعد lua-http (أو socket.http من LuaSocket) هي الطريقة القياسية لإجراء طلبات HTTP في Lua. توفر طرق GET و POST وطلبات مخصصة أساسية. لمزيد من الميزات، تحظى lua-resty-http بشعبية في بيئات OpenResty/Nginx. قم بالتثبيت باستخدام luarocks install http. يقوم curl2code بتوليد كود باستخدام وحدة http.

socket.http مقابل lua-resty-http مقابل lua-curl — أيهما أستخدم؟

socket.http (LuaSocket) هي المعيار لـ Lua العامة. lua-resty-http مخصصة لـ OpenResty/Nginx مع إدخال/إخراج غير حاجز. lua-curl تلف libcurl لدعم البروتوكولات الكامل. استخدم socket.http للسكربتات المستقلة، و resty-http لخوادم الويب. لبرمجة مماثلة، راجع curl إلى Python أو curl إلى Ruby.

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

اضبط ترويسة Authorization في جدول الترويسات: headers = { Authorization = "Bearer token" }. للمصادقة الأساسية، قم بالترميز باستخدام مكتبة base64: "Basic " .. base64.encode(user .. ":" .. pass). مرر الترويسات في جدول خيارات الطلب. يتعامل curl2code مع أعلام -u والترويسات.

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

قم ببناء جسم multipart يدويًا باستخدام سلاسل الحدود، أو استخدم مكتبة مساعدة مثل multipart-post. اضبط ترويسة Content-Type مع الحدود. تقبل http.request في LuaSocket دالة مصدر (source function) لبث عمليات الرفع الكبيرة. يقوم curl2code بتحويل أعلام -F إلى صيغة Lua.

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

تعيد http.request في LuaSocket قيمًا متعددة: body, code, headers, status = http.request(url). تحقق من code لحالة HTTP (200، 404، إلخ) أو nil عند فشل الشبكة. استخدم نمط assert() في Lua أو if not body then للتحقق من الأخطاء.

كيفية تحليل JSON في Lua؟

استخدم وحدة cjson (سريعة، تعتمد على C): local data = cjson.decode(json_string). للترميز: cjson.encode(table). في OpenResty، تكون cjson مثبتة مسبقًا. لـ Lua المستقلة، قم بالتثبيت باستخدام luarocks install lua-cjson. بدلاً من ذلك، استخدم dkjson المكتوبة بـ Lua الصرفة.

كيفية ضبط المهلة في Lua؟

مع LuaSocket: اضبط http.TIMEOUT = 30 عالميًا، أو أنشئ اتصالاً مخصصًا واستدعِ :settimeout(30). في lua-resty-http، استخدم httpc:set_timeout(30000) (بالمللي ثانية). تمنع المهلات السكربتات من التعلق إلى الأبد عند عدم استجابة الخوادم.

كيفية استخدام بروكسي في Lua؟

مع LuaSocket، اضبط حقل proxy في خيارات الطلب: http.request{ url = target, proxy = "http://proxy:8080" }. لـ lua-resty-http، اتصل بالبروكسي مباشرة واستخدم طريقة CONNECT لنفق HTTPS. يقوم curl2code بتحويل أعلام -x إلى إعداد بروكسي Lua المناسب.

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

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

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

قم بتمرير curl -H "Authorization: Bearer YOUR_TOKEN" URL إلى curl2code وسيقوم بإنشاء كود http مع ترويسة المصادقة: headers['Authorization'] = 'Bearer YOUR_TOKEN'. يكتشف curl2code رموز Bearer من كل من وسوم -H "Authorization: Bearer ..." و --oauth2-bearer. بالنسبة لـ Basic auth، استخدم -u user:pass.

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

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

روابط مفيدة

أدلة curl

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