অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) একটি জনপ্রিয় লাইব্রেরি, যা HTTP রিকোয়েস্ট পাঠানো এবং সাড়া পাওয়ার জন্য ব্যবহৃত হয়। এটি সিংক্রোনাস (synchronous) এবং অ্যাসিঙ্ক্রোনাস (asynchronous) উভয় রিকোয়েস্ট সমর্থন করে। HttpAsyncClient ব্যবহার করে অ্যাসিঙ্ক্রোনাস রিকোয়েস্ট পাঠানো সম্ভব, যা ইভেন্ট-ড্রিভেন (event-driven) প্রোগ্রামিং মডেল অনুসরণ করে।
HttpAsyncClient, অ্যাসিঙ্ক্রোনাস HTTP রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়। এটি HttpClient
এর অ্যাসিঙ্ক্রোনাস ভার্সন, যা নির্দিষ্ট রিকোয়েস্টের জন্য অপেক্ষা না করে অন্য কাজ করতে দেয়। এটি HTTP রিকোয়েস্ট এবং রেসপন্স পরিচালনার জন্য একটি ইভেন্ট-ড্রিভেন প্রোগ্রামিং মডেল ব্যবহার করে।
এটি ব্যবহার করতে হলে প্রথমে কিছু নির্দিষ্ট ডিপেনডেন্সি প্রকল্পে যোগ করতে হয়। উদাহরণস্বরূপ, Maven ব্যবহার করলে pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.1.4</version>
</dependency>
এখন, অ্যাসিঙ্ক্রোনাস রিকোয়েস্ট পাঠানোর জন্য HttpAsyncClient ব্যবহার করা যাক। নিচে একটি উদাহরণ কোড দেওয়া হলো:
import org.apache.http.HttpResponse;
import org.apache.http.impl.nio.client.HttpAsyncClients;
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.concurrent.FutureCallback;
import java.util.concurrent.CountDownLatch;
public class AsyncHttpClientExample {
public static void main(String[] args) throws InterruptedException {
// HttpAsyncClient তৈরি করা
CloseableHttpAsyncClient httpClient = HttpAsyncClients.createDefault();
httpClient.start();
// HTTP GET রিকোয়েস্ট তৈরি করা
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts");
// অ্যাসিঙ্ক্রোনাস রিকোয়েস্ট পাঠানো
CountDownLatch latch = new CountDownLatch(1);
httpClient.execute(request, new FutureCallback<HttpResponse>() {
@Override
public void completed(HttpResponse result) {
System.out.println("রেসপন্স প্রাপ্ত: " + result.getStatusLine());
latch.countDown();
}
@Override
public void failed(Exception ex) {
System.out.println("রিকোয়েস্ট ব্যর্থ হয়েছে: " + ex.getMessage());
latch.countDown();
}
@Override
public void cancelled() {
System.out.println("রিকোয়েস্ট বাতিল হয়েছে");
latch.countDown();
}
});
// রেসপন্স পাওয়ার জন্য অপেক্ষা করা
latch.await();
// HTTP ক্লায়েন্ট বন্ধ করা
try {
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
HttpAsyncClients.createDefault()
ব্যবহার করে একটি HttpAsyncClient
অবজেক্ট তৈরি করা হয়।HttpGet
ব্যবহার করে একটি HTTP GET রিকোয়েস্ট তৈরি করা হয়, যা একটি নির্দিষ্ট URL এর দিকে পাঠানো হবে।এই উদাহরণটি HttpAsyncClient ব্যবহার করে একটি অ্যাসিঙ্ক্রোনাস HTTP রিকোয়েস্ট পাঠানোর প্রক্রিয়া ব্যাখ্যা করেছে, যেখানে রেসপন্সের জন্য অপেক্ষা না করে অন্য কাজ করা সম্ভব।
common.read_more