تحويل curl إلى Kotlin
يقوم curl2code بتحويل أوامر curl إلى كود Kotlin باستخدام OkHttp. تتم عملية التحويل في متصفحك عبر WebAssembly لخصوصية تامة. لـ Java، راجع محول curl إلى Java. لـ Swift (iOS)، راجع curl إلى Swift. أدناه أمثلة Kotlin عملية.
كيفية نسخ curl من متصفحك
- 1
افتح أدوات المطور (DevTools)
اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.
- 2
انتقل إلى علامة تبويب الشبكة (Network)
انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.
- 3
نسخ كـ cURL
انقر بزر الماوس الأيمن على الطلب ← Copy ← Copy as cURL. ثم قم بلصقه أعلاه.
الأسئلة الشائعة
ما هو Kotlin OkHttp؟
OkHttp هو عميل HTTP واسع الاستخدام لـ Kotlin و Java، طورته شركة Square. يتميز بتجميع الاتصالات (connection pooling)، وضغط GZIP الشفاف، وتخزين الاستجابة مؤقتًا، ودعم HTTP/2. أضفه باستخدام implementation("com.squareup.okhttp3:okhttp:4.x"). إنها المكتبة الافتراضية التي يستخدمها curl2code لتحويلات Kotlin وهي عميل HTTP القياسي لنظام Android.
OkHttp مقابل Ktor Client مقابل Fuel — أيهما أستخدم؟
OkHttp هو المعيار الصناعي، خاصة لنظام Android. Ktor Client مصمم لـ Kotlin أولاً مع دعم الـ coroutines والقدرة على العمل عبر منصات متعددة. Fuel خفيف الوزن مع Kotlin DSL نظيف. لنظام Android، OkHttp (غالبًا عبر Retrofit) هو الخيار الافتراضي. لمقارنة JVM، راجع محول curl إلى Java.
كيفية التعامل مع المصادقة في Kotlin؟
أضف ترويسة: request.addHeader("Authorization", "Bearer $token"). للمصادقة الأساسية: استخدم أداة Credentials.basic(user, pass). يدعم OkHttp أيضًا واجهة Authenticator لإعادة المحاولة التلقائية مع بيانات الاعتماد عند استجابات 401. يتعامل curl2code مع أعلام -u و Bearer تلقائيًا.
كيفية إرسال بيانات النموذج متعدد الأجزاء في Kotlin؟
استخدم MultipartBody.Builder() من OkHttp: .addFormDataPart("file", filename, fileBody) للملفات و .addFormDataPart("key", "value") للحقول. اضبط .setType(MultipartBody.FORM). يقوم curl2code بتحويل أعلام -F إلى كود بناء multipart الصحيح في OkHttp.
كيفية التعامل مع أخطاء HTTP في Kotlin؟
تحقق من response.isSuccessful لحالات 2xx أو اقرأ response.code. يطرح OkHttp استثناء IOException عند فشل الشبكة. استخدم runCatching { } في Kotlin أو try/catch لمعالجة نظيفة للأخطاء. أغلق دائمًا جسم الاستجابة باستخدام كتلة .use { } لمنع تسرب الموارد.
كيفية استخدام الـ coroutines مع OkHttp؟
قم بلف استدعاءات OkHttp الحاجزة (blocking) في withContext(Dispatchers.IO) { client.newCall(request).execute() }. أو استخدم امتداد suspendCancellableCoroutine مع enqueue() لعملية غير متزامنة حقيقية. يحتوي Ktor Client على دعم coroutine أصلي مدمج. لأنماط غير متزامنة مماثلة، راجع curl إلى Swift (async/await).
كيفية ضبط المهلة في Kotlin OkHttp؟
قم بالتهيئة على العميل: OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).build(). لإعادة المحاولة، أضف اعتراضًا (interceptor) يعيد المحاولة عند الفشل. هذه تقابل --connect-timeout و --max-time في curl.
كيفية استخدام بروكسي مع OkHttp؟
اضبطه في باني العميل: OkHttpClient.Builder().proxy(Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy", 8080))).build(). للمصادقة، أضف proxyAuthenticator. يدعم OkHttp أيضًا بروكسيات SOCKS مع Proxy.Type.SOCKS. يقوم curl2code بتحويل أعلام -x إلى هذا التكوين.
كيف يمكن إرسال طلب POST مع جسم JSON في Kotlin؟
قم بتحويل أمر curl POST مثل curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL إلى Kotlin باستخدام curl2code. يستخدم الكود الناتج RequestBody.create(MediaType.parse("application/json"), json). يقوم curl2code تلقائيًا باكتشاف وسوم -d/--data التي تحتوي على محتوى JSON ويضبط ترويسة Content-Type المناسبة في كود OkHttp.
كيف يمكن إضافة مصادقة Bearer token في Kotlin؟
قم بتمرير curl -H "Authorization: Bearer YOUR_TOKEN" URL إلى curl2code وسيقوم بإنشاء كود OkHttp مع ترويسة المصادقة: .addHeader("Authorization", "Bearer YOUR_TOKEN"). يكتشف curl2code رموز Bearer من كل من وسوم -H "Authorization: Bearer ..." و --oauth2-bearer. بالنسبة لـ Basic auth، استخدم -u user:pass.
كيف يمكن ضبط ترويسة Content-Type في Kotlin؟
يقوم curl2code بتحويل curl -H "Content-Type: application/json" URL إلى كود OkHttp مع الترويسة المناسبة: .addHeader("Content-Type", "application/json"). بالنسبة لبيانات -d، يستخدم curl افتراضيًا application/x-www-form-urlencoded؛ أما بالنسبة لرفع النماذج باستخدام -F، فإنه يستخدم multipart/form-data. يقوم curl2code بربط كل منها بـ API الصحيح في OkHttp.