Apache HTTP Client লাইব্রেরি HttpGet এবং HttpPost ক্লাস সরবরাহ করে যা HTTP GET এবং POST রিকোয়েস্ট তৈরি এবং পাঠানোর জন্য ব্যবহৃত হয়। HttpGet ক্লাস ডেটা রিট্রিভ করার জন্য এবং HttpPost ক্লাস ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়। এই দুটি HTTP মেথড ওয়েব সার্ভিস এবং API-এ যোগাযোগ করার জন্য ব্যাপকভাবে ব্যবহৃত হয়।
এই নিবন্ধে, আমরা HttpGet এবং HttpPost ক্লাসের মাধ্যমে HTTP রিকোয়েস্ট পাঠানোর বিস্তারিত উদাহরণ দেখব।
HttpGet ক্লাস HTTP GET রিকোয়েস্ট তৈরি করতে ব্যবহৃত হয়, যা সাধারণত ওয়েব সার্ভার থেকে ডেটা রিট্রিভ করার জন্য ব্যবহৃত হয়। GET মেথডে কোনো ডেটা সার্ভারে পাঠানো হয় না, বরং সার্ভার থেকে ডেটা রিট্রিভ করা হয়।
উদাহরণ ১: HTTP GET রিকোয়েস্ট পাঠানো
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
public class HttpGetExample {
public static void main(String[] args) throws Exception {
// Create an instance of HttpClient
CloseableHttpClient httpClient = HttpClients.createDefault();
// Create a new HttpGet request
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts");
// Execute the request
HttpResponse response = httpClient.execute(request);
// Print the status code
System.out.println("Response Code: " + response.getStatusLine().getStatusCode());
// Close the client
httpClient.close();
}
}
এখানে:
আউটপুট:
Response Code: 200
এখানে 200 HTTP স্ট্যাটাস কোডটি দেখাচ্ছে, যা নির্দেশ করে যে রিকোয়েস্ট সফলভাবে সম্পন্ন হয়েছে।
আপনি GET রিকোয়েস্টের URL-এ প্যারামিটার অ্যাড করতে পারেন, যা সার্ভারে পঠানো হয়।
উদাহরণ: GET রিকোয়েস্টে URL Parameters পাঠানো
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
public class HttpGetWithParamsExample {
public static void main(String[] args) throws Exception {
// Create an instance of HttpClient
CloseableHttpClient httpClient = HttpClients.createDefault();
// Create a new HttpGet request with URL parameters
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts?userId=1");
// Execute the request
HttpResponse response = httpClient.execute(request);
// Print the status code
System.out.println("Response Code: " + response.getStatusLine().getStatusCode());
// Close the client
httpClient.close();
}
}
এখানে:
userId=1
প্যারামিটার যোগ করা হয়েছে, যা সার্ভারে পঠানো হবে।HttpPost ক্লাস HTTP POST রিকোয়েস্ট তৈরি করতে ব্যবহৃত হয়, যা ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়। POST রিকোয়েস্টে সাধারণত ফর্ম ডেটা বা JSON ডেটা সার্ভারে পাঠানো হয়।
উদাহরণ ২: HTTP POST রিকোয়েস্ট পাঠানো
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
public class HttpPostExample {
public static void main(String[] args) throws Exception {
// Create an instance of HttpClient
CloseableHttpClient httpClient = HttpClients.createDefault();
// Create a new HttpPost request
HttpPost postRequest = new HttpPost("https://jsonplaceholder.typicode.com/posts");
// Set the request body (JSON data)
StringEntity entity = new StringEntity("{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}");
postRequest.setEntity(entity);
// Set content type header
postRequest.setHeader("Content-Type", "application/json");
// Execute the request
HttpResponse response = httpClient.execute(postRequest);
// Print the response status code
System.out.println("Response Code: " + response.getStatusLine().getStatusCode());
// Close the client
httpClient.close();
}
}
এখানে:
আউটপুট:
Response Code: 201
এখানে 201 HTTP স্ট্যাটাস কোডটি দেখাচ্ছে, যা নির্দেশ করে যে নতুন রিসোর্স তৈরি করা হয়েছে।
আপনি POST রিকোয়েস্টে form data পাঠাতে পারেন, যা সার্ভারে সাবমিট করা হয়।
উদাহরণ: POST রিকোয়েস্টে Form Data পাঠানো
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.util.ArrayList;
import java.util.List;
public class HttpPostFormExample {
public static void main(String[] args) throws Exception {
// Create an instance of HttpClient
CloseableHttpClient httpClient = HttpClients.createDefault();
// Create a new HttpPost request
HttpPost postRequest = new HttpPost("https://httpbin.org/post");
// Prepare form data
List<BasicNameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("name", "John"));
params.add(new BasicNameValuePair("age", "30"));
// Set the form data as the request body
postRequest.setEntity(new UrlEncodedFormEntity(params));
// Execute the request
HttpResponse response = httpClient.execute(postRequest);
// Print the response status code
System.out.println("Response Code: " + response.getStatusLine().getStatusCode());
// Close the client
httpClient.close();
}
}
এখানে:
HttpGet এবং HttpPost ক্লাস Apache HTTP Client লাইব্রেরির প্রধান উপাদান যা HTTP রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়। HttpGet ক্লাসটি ওয়েব সার্ভিস থেকে ডেটা রিট্রিভ করার জন্য এবং HttpPost ক্লাসটি ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়। এই দুটি ক্লাসের মাধ্যমে আপনি HTTP রিকোয়েস্ট পাঠাতে, রেসপন্স গ্রহণ করতে এবং ওয়েব API-এর সাথে যোগাযোগ করতে পারেন। Exception handling, timeout settings, এবং proper headers ব্যবহারের মাধ্যমে HTTP রিকোয়েস্টগুলির পারফরম্যান্স এবং সিকিউরিটি নিশ্চিত করা যেতে পারে।
common.read_more