Apache HTTP Client: InputStream এবং String এর মাধ্যমে Response রিড করা
Apache HTTP Client ব্যবহার করে HTTP request পাঠানোর পর, response হিসেবে ডেটা পাওয়া যায়। এই response ডেটা InputStream বা String হিসেবে পড়া যেতে পারে। InputStream
সাধারণত বড় ডেটা, যেমন ফাইল বা বাইনারি ডেটা, পড়তে ব্যবহৃত হয়, আর String
ব্যবহার করা হয় সাধারণত টেক্সট বা JSON ডেটা পড়ার জন্য।
EntityUtils
বা সরাসরি InputStream
ব্যবহার করে ডেটা পড়তে পারি।import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class ApacheHttpClientResponseExample {
public static void main(String[] args) {
// HTTP ক্লায়েন্ট তৈরি
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// POST Request এর URL
String url = "https://example.com/api";
// HttpPost অবজেক্ট তৈরি
HttpPost postRequest = new HttpPost(url);
// JSON বা অন্য ধরনের ডেটা পাঠানোর জন্য কন্টেন্ট সেট করা
String json = "{ \"name\": \"John\", \"age\": 30 }";
StringEntity entity = new StringEntity(json);
// Request Content-Type সেট করা
postRequest.setEntity(entity);
postRequest.setHeader("Accept", "application/json");
postRequest.setHeader("Content-Type", "application/json");
// POST Request পাঠানো এবং Response গ্রহণ করা
HttpResponse response = httpClient.execute(postRequest);
// Response থেকে Entity পাওয়া
HttpEntity responseEntity = response.getEntity();
// InputStream এর মাধ্যমে Response রিড করা
InputStream inputStream = responseEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder responseBody = new StringBuilder();
while ((line = reader.readLine()) != null) {
responseBody.append(line);
}
System.out.println("Response Body (InputStream): " + responseBody.toString());
// অথবা String হিসেবে Response রিড করা (EntityUtils ব্যবহার করে)
String responseBodyString = EntityUtils.toString(responseEntity);
System.out.println("Response Body (String): " + responseBodyString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
responseEntity.getContent()
মেথড ব্যবহার করে response ডেটা একটি InputStream
আকারে পাওয়া যায়।BufferedReader
এবং InputStreamReader
ব্যবহার করে আমরা response এর প্রতিটি লাইন পড়তে পারি এবং StringBuilder ব্যবহার করে response body সংগ্রহ করতে পারি।EntityUtils.toString(responseEntity)
ব্যবহার করে response ডেটাকে সরাসরি String আকারে পড়ে নেওয়া যায়। এটি সাধারণত JSON বা টেক্সট ফরম্যাটের response ডেটা পড়তে ব্যবহৃত হয়।Apache HTTP Client ব্যবহার করে HTTP request পাঠানোর পর response ডেটা InputStream বা String এর মাধ্যমে পড়া যায়। InputStream বড় ডেটা বা বাইনারি ডেটা পড়তে ব্যবহৃত হয়, আর String সাধারণত JSON বা টেক্সট ডেটা পড়তে ব্যবহৃত হয়। EntityUtils
ব্যবহার করে response কে String আকারে রিড করা খুবই সহজ, এবং InputStream
ব্যবহার করে আপনি আরও নমনীয়ভাবে response ডেটা প্রক্রিয়া করতে পারেন।
common.read_more