تحويل curl إلى Java
قم بتحويل أوامر curl إلى كود Java باستخدام HttpClient API الحديث. يعمل curl2code بالكامل في متصفحك عبر WebAssembly — لا تغادر أي بيانات جهازك. لتطوير Kotlin، جرب محول curl إلى Kotlin. لـ C# (.NET)، راجع curl إلى C#. أدناه أمثلة Java جاهزة للاستخدام.
كيفية نسخ curl من متصفحك
- 1
افتح أدوات المطور (DevTools)
اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.
- 2
انتقل إلى علامة تبويب الشبكة (Network)
انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.
- 3
نسخ كـ cURL
انقر بزر الماوس الأيمن على الطلب ← Copy ← Copy as cURL. ثم قم بلصقه أعلاه.
الأسئلة الشائعة
ما هو HttpClient في Java؟
يعد HttpClient في Java (الذي تم تقديمه في Java 11) عميل HTTP حديثاً ومدمجاً يحل محل HttpURLConnection القديم. يدعم HTTP/2، والطلبات غير المتزامنة، و WebSocket، وواجهة builder سلسة. لا حاجة لتبعيات خارجية. يدعم curl2code أيضاً OkHttp، و Jsoup، و HttpURLConnection كبدائل.
مقارنة بين HttpClient و OkHttp و HttpURLConnection — أيهما أستخدم؟
HttpClient (Java 11+) هو المعيار الحديث — استخدمه للمشاريع الجديدة. OkHttp ناضج ومستخدم على نطاق واسع في Android، مع معترضات وتجميع اتصالات. HttpURLConnection يعمل على جميع إصدارات Java ولكنه مطول. لـ Android/Kotlin، راجع محول curl إلى Kotlin. لنهج حديث مماثل، جرب curl إلى C#.
كيفية التعامل مع المصادقة في Java؟
اضبط ترويسة Authorization: request.header("Authorization", "Bearer " + token). لمصادقة Basic، قم بالتشفير باستخدام Base64.getEncoder().encodeToString((user + ":" + pass).getBytes()). يدعم HttpClient أيضاً Authenticator للتعامل التلقائي مع بيانات الاعتماد.
كيفية إرسال بيانات نموذج متعدد الأجزاء في Java؟
يتطلب HttpClient في Java 11+ بناء جسم متعدد الأجزاء يدوياً مع سلاسل الحدود (boundary). استخدم HttpRequest.BodyPublishers.ofString() مع أجزاء منسقة يدوياً. تبسط OkHttp ذلك باستخدام MultipartBody.Builder. ينتج curl2code كود الأجزاء المتعددة المناسب لمكتبة Java المختارة.
كيفية التعامل مع أخطاء HTTP في Java؟
مع HttpClient، تحقق من response.statusCode() بعد كل طلب — فهو لا يلقي استثناءات عند أخطاء HTTP. قم بتغليف الاستدعاءات في try/catch لـ IOException (شبكة) و InterruptedException (غير متزامن). تلقي OkHttp استثناء IOException عند الفشل وتوفر response.isSuccessful() لفحص الحالة.
كيفية إجراء طلبات HTTP غير متزامنة في Java؟
يوفر HttpClient دالة sendAsync() التي تعيد CompletableFuture: client.sendAsync(request, BodyHandlers.ofString()).thenApply(HttpResponse::body). قم بالتسلسل باستخدام thenAccept()، أو thenCompose()، أو استخدم CompletableFuture.allOf() للطلبات المتوازية. تستخدم OkHttp enqueue() مع واجهة Callback.
كيفية ضبط المهلات في HttpClient في Java؟
اضبطها على العميل: HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build(). لكل طلب: request.timeout(Duration.ofSeconds(30)). تستخدم OkHttp OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).
كيفية تكوين بروكسي في Java؟
مع HttpClient: HttpClient.newBuilder().proxy(ProxySelector.of(new InetSocketAddress("proxy", 8080))).build(). تستخدم OkHttp فئة Proxy: new OkHttpClient.Builder().proxy(new Proxy(Proxy.Type.HTTP, address)). تحترم Java أيضاً أعلام JVM مثل -Dhttp.proxyHost. يحول curl2code أعلام -x تلقائياً.
كيف يمكن إرسال طلب POST مع جسم JSON في Java؟
قم بتحويل أمر curl POST مثل curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL إلى Java باستخدام curl2code. يستخدم الكود الناتج 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.