মডার্ন HTTP ক্লায়েন্ট (Modern HTTP client)
পরিষ্কার, আধুনিক HTTP রিকোয়েস্টের (requests) জন্য বিল্ট-ইন HttpClient ব্যবহার করুন।
কোড তুলনা
✕ 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();
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
বিল্ডার API (Builder API)
রিকোয়েস্ট, হেডার এবং টাইমআউটের জন্য ফ্লুয়েন্ট বিল্ডার।
HTTP/2 সাপোর্ট
মাল্টিপ্লেক্সিং (multiplexing) এবং সার্ভার পুশ সহ বিল্ট-ইন HTTP/2।
অ্যাসিঙ্ক রেডি (Async Ready)
sendAsync() মেথডটি CompletableFuture রিটার্ন করে।
পুরনো পদ্ধতি
HttpURLConnection
আধুনিক পদ্ধতি
HttpClient
JDK থেকে
11
কঠিনতা
প্রাথমিক
JDK সমর্থন
মডার্ন HTTP ক্লায়েন্ট (Modern HTTP client)
উপলব্ধ
JDK 11 (সেপ্টেম্বর 2018) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
HttpClient HTTP/1.1 এবং HTTP/2, অ্যাসিঙ্ক রিকোয়েস্ট, WebSocket, কাস্টম এক্সিকিউটর এবং কানেকশন পুলিং (connection pooling) সাপোর্ট করে। এর ফলে URLConnection কাস্ট করা বা InputStream ম্যানুয়ালি রিড করার আর প্রয়োজন নেই।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ