استخدم HttpClient المدمج لطلبات HTTP نظيفة وحديثة.
مقارنة الكود
✕ Java 8
URL url = new URL("https://api.com/data");
HttpURLConnection con =
(HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
// read lines, close streams...
✓ Java 11+
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.com/data"))
.build();
var response = client.send(
request, BodyHandlers.ofString());
String body = response.body();
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
واجهة برمجية للمنشئ
منشئ سائل للطلبات والرؤوس والمهل الزمنية.
دعم HTTP/2
HTTP/2 مدمج مع تعدد الإرسال ودفع الخادم.
جاهز لغير المتزامن
sendAsync() يُرجع CompletableFuture.
الأسلوب القديم
HttpURLConnection
الأسلوب الحديث
HttpClient
منذ JDK
11
الصعوبة
مبتدئ
دعم JDK
عميل HTTP حديث
متاح
متاح على نطاق واسع منذ JDK 11 (سبتمبر 2018)
كيف يعمل
يدعم HttpClient بروتوكولَي HTTP/1.1 و HTTP/2 والطلبات غير المتزامنة وWebSocket والمنفّذات المخصصة وتجميع الاتصالات. لا مزيد من تحويل URLConnection أو قراءة InputStreams يدوياً.
توثيق ذو صلة