تبدیل curl به Java

دستورات curl را با استفاده از API مدرن HttpClient به کد Java تبدیل کنید. curl2code کاملاً در مرورگر شما از طریق WebAssembly اجرا می‌شود — هیچ داده‌ای از دستگاه شما خارج نمی‌شود. برای توسعه Kotlin، مبدل curl به Kotlin ما را امتحان کنید. برای C# (.NET)، curl به C# را ببینید. در ادامه مثال‌های آماده Java آورده شده است.

نحوه کپی کردن curl از مرورگر

  1. 1

    باز کردن DevTools

    کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعه‌دهنده مرورگر باز شوند.

  2. 2

    رفتن به تب Network

    روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP می‌شود را انجام دهید.

  3. 3

    کپی به عنوان cURL

    روی درخواست راست‌کلیک کنید ← CopyCopy as cURL. سپس آن را در بالا جایگذاری کنید.

سوالات متداول

Java HttpClient چیست؟

کتابخانه HttpClient جاوا (معرفی شده در جاوا ۱۱) یک کلاینت HTTP مدرن و داخلی است که جایگزین HttpURLConnection قدیمی شده است. این کتابخانه از HTTP/2، درخواست‌های ناهمگام، WebSocket و یک API سازنده (builder) روان پشتیبانی می‌کند. نیازی به وابستگی خارجی نیست. curl2code همچنین از OkHttp، Jsoup و HttpURLConnection به عنوان جایگزین پشتیبانی می‌کند.

HttpClient در مقابل OkHttp در مقابل HttpURLConnection — از کدام استفاده کنیم؟

HttpClient (جاوا ۱۱+) استاندارد مدرن است — برای پروژه‌های جدید از آن استفاده کنید. OkHttp بالغ است و به طور گسترده در اندروید استفاده می‌شود، همراه با اینترسپتورها و استخر اتصالات. HttpURLConnection در تمام نسخه‌های جاوا کار می‌کند اما پرحجم است. برای اندروید/کاتلین، مبدل curl به Kotlin ما را ببینید. برای رویکرد مدرن مشابه، curl به C# را امتحان کنید.

چگونه احراز هویت را در جاوا مدیریت کنیم؟

هدر Authorization را تنظیم کنید: request.header("Authorization", "Bearer " + token). برای Basic auth، با Base64.getEncoder().encodeToString((user + ":" + pass).getBytes()) انکود کنید. HttpClient همچنین از Authenticator برای مدیریت خودکار اعتبارنامه‌ها پشتیبانی می‌کند.

چگونه داده‌های فرم چندبخشی را در جاوا ارسال کنیم؟

کتابخانه HttpClient در جاوا ۱۱+ نیاز به ساخت دستی بدنه چندبخشی با رشته‌های مرز (boundary) دارد. از HttpRequest.BodyPublishers.ofString() با بخش‌های فرمت شده دستی استفاده کنید. OkHttp این کار را با MultipartBody.Builder ساده می‌کند. curl2code کد چندبخشی مناسب را برای کتابخانه جاوای انتخابی شما تولید می‌کند.

چگونه خطاهای HTTP را در جاوا مدیریت کنیم؟

با HttpClient، بعد از هر درخواست response.statusCode() را چک کنید — این متد در صورت خطای HTTP استثنا پرتاب نمی‌کند. فراخوانی‌ها را در try/catch برای IOException (شبکه) و InterruptedException (ناهمگام) قرار دهید. OkHttp در صورت شکست IOException پرتاب می‌کند و response.isSuccessful() را برای بررسی وضعیت ارائه می‌دهد.

چگونه درخواست‌های HTTP ناهمگام در جاوا ارسال کنیم؟

کتابخانه HttpClient متد sendAsync() را ارائه می‌دهد که CompletableFuture برمی‌گرداند: client.sendAsync(request, BodyHandlers.ofString()).thenApply(HttpResponse::body). با thenAccept()، thenCompose() زنجیره بسازید یا از CompletableFuture.allOf() برای درخواست‌های موازی استفاده کنید. OkHttp از enqueue() با یک اینترفیس Callback استفاده می‌کند.

چگونه مهلت زمانی را در Java HttpClient تنظیم کنیم؟

روی کلاینت تنظیم کنید: HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build(). برای هر درخواست: request.timeout(Duration.ofSeconds(30)). OkHttp از OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS) استفاده می‌کند.

چگونه یک پروکسی را در جاوا پیکربندی کنیم؟

با HttpClient: HttpClient.newBuilder().proxy(ProxySelector.of(new InetSocketAddress("proxy", 8080))).build(). OkHttp از کلاس Proxy استفاده می‌کند: new OkHttpClient.Builder().proxy(new Proxy(Proxy.Type.HTTP, address)). جاوا همچنین از فلگ‌های JVM -Dhttp.proxyHost پیروی می‌کند. curl2code فلگ‌های -x را به طور خودکار تبدیل می‌کند.

چگونه یک درخواست POST با بدنه JSON در Java ارسال کنیم؟

یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL را با استفاده از curl2code به Java تبدیل کنید. کد تولید شده از HttpRequest.newBuilder().POST(BodyPublishers.ofString(jsonString)).build() استفاده می‌کند. curl2code به طور خودکار فلگ‌های -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد HttpClient تنظیم می‌کند.

چگونه احراز هویت با Bearer token را در Java اضافه کنیم؟

دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد HttpClient را با هدر احراز هویت تولید کند: .header("Authorization", "Bearer YOUR_TOKEN"). curl2code توکن‌های Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص می‌دهد. برای Basic auth، از -u user:pass استفاده کنید.

چگونه هدر Content-Type را در Java تنظیم کنیم؟

curl2code دستور curl -H "Content-Type: application/json" URL را به کد HttpClient با هدر مناسب تبدیل می‌کند: .header("Content-Type", "application/json"). برای داده‌های -d، دستور curl به طور پیش‌فرض از application/x-www-form-urlencoded استفاده می‌کند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده می‌کند. curl2code هر کدام را به API صحیح HttpClient نگاشت می‌کند.

لینک‌های مفید

راهنماهای curl

تبدیل curl به زبان‌های دیگر