تبدیل curl به Kotlin
curl2code دستورات curl را با استفاده از OkHttp به کد Kotlin تبدیل میکند. این تبدیل برای حفظ حریم خصوصی کامل، در مرورگر شما از طریق 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 میدهد و از coroutine و قابلیتهای چند پلتفرمی پشتیبانی میکند. Fuel سبکوزن با یک DSL تمیز برای Kotlin است. برای Android، OkHttp (اغلب از طریق Retrofit) انتخاب پیشفرض است. برای مقایسه JVM، مبدل curl به Java ما را ببینید.
چگونه احراز هویت را در Kotlin مدیریت کنیم؟
یک هدر اضافه کنید: request.addHeader("Authorization", "Bearer $token"). برای احراز هویت Basic: از ابزار Credentials.basic(user, pass) استفاده کنید. OkHttp همچنین از اینترفیس Authenticator برای تلاش مجدد خودکار با اعتبارنامهها در پاسخهای 401 پشتیبانی میکند. curl2code پرچمهای -u و Bearer را به طور خودکار مدیریت میکند.
چگونه دادههای multipart form را در Kotlin ارسال کنیم؟
از MultipartBody.Builder() در OkHttp استفاده کنید: .addFormDataPart("file", filename, fileBody) برای فایلها و .addFormDataPart("key", "value") برای فیلدها. .setType(MultipartBody.FORM) را تنظیم کنید. curl2code پرچمهای -F را به کد صحیح سازنده multipart در OkHttp تبدیل میکند.
چگونه خطاهای HTTP را در Kotlin مدیریت کنیم؟
برای وضعیت 2xx مقدار response.isSuccessful را بررسی کنید یا response.code را بخوانید. OkHttp در صورت شکست شبکه IOException پرتاب میکند. از runCatching { } کاتلین یا try/catch برای مدیریت خطای تمیز استفاده کنید. همیشه بدنه پاسخ را با بلوک .use { } ببندید تا از نشت منابع جلوگیری شود.
چگونه از coroutines با OkHttp استفاده کنیم؟
فراخوانیهای مسدودکننده OkHttp را در 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 را با استفاده از curl2code به Kotlin تبدیل کنید. کد تولید شده از 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 نگاشت میکند.