অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে Response Body থেকে JSON বা XML ডেটা পড়া একটি সাধারণ কাজ। এটি HTTP রিকোয়েস্ট পাঠানোর পর রেসপন্সের বডি থেকে ডেটা রিড করার জন্য ব্যবহৃত হয়। JSON এবং XML সাধারণত সার্ভিস থেকে প্রাপ্ত ডেটা বিন্যাস হিসাবে ব্যবহৃত হয়। নিচে JSON এবং XML ডেটা রিড করার জন্য উদাহরণ দেওয়া হয়েছে।
JSON ডেটা রিড করতে সাধারণত org.apache.http.impl.client.HttpClients
ক্লাস ব্যবহার করা হয় এবং রেসপন্স বডি থেকে JSON ডেটা পড়তে org.apache.http.util.EntityUtils
ক্লাসের সাহায্যে রেসপন্স বডি ক্যাপচার করা হয়। তারপর, JSON প্যার্স করতে org.json
অথবা com.fasterxml.jackson
লাইব্রেরি ব্যবহার করা যেতে পারে।
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.CloseableHttpResponse;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import java.io.IOException;
public class HttpClientExample {
public static void main(String[] args) {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/todos/1");
try (CloseableHttpResponse response = httpClient.execute(request)) {
String responseBody = EntityUtils.toString(response.getEntity());
// JSON প্যার্স করা
JSONObject jsonObject = new JSONObject(responseBody);
System.out.println("JSON Response: " + jsonObject.toString(2));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
HttpGet
ব্যবহার করে একটি GET রিকোয়েস্ট তৈরি করা হয়।EntityUtils.toString()
মেথড ব্যবহার করে রেসপন্স বডি পাঠ করা হয়।JSONObject
ব্যবহার করে JSON ডেটা প্যার্স করা হয় এবং তা প্রিন্ট করা হয়।XML ডেটা রিড করার জন্য, Apache HTTP Client ব্যবহার করা যায় এবং XML প্যার্স করার জন্য javax.xml.parsers.DocumentBuilder
বা অন্যান্য XML প্যার্সিং লাইব্রেরি ব্যবহার করা হয়।
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.CloseableHttpResponse;
import org.apache.http.util.EntityUtils;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class HttpClientExample {
public static void main(String[] args) {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet request = new HttpGet("https://www.w3schools.com/xml/note.xml");
try (CloseableHttpResponse response = httpClient.execute(request)) {
String responseBody = EntityUtils.toString(response.getEntity());
// XML প্যার্স করা
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
ByteArrayInputStream inputStream = new ByteArrayInputStream(responseBody.getBytes());
Document document = builder.parse(inputStream);
System.out.println("XML Response: " + document.getDocumentElement().getNodeName());
}
} catch (IOException | Exception e) {
e.printStackTrace();
}
}
}
HttpGet
ব্যবহার করে একটি GET রিকোয়েস্ট তৈরি করা হয়।EntityUtils.toString()
মেথড ব্যবহার করে রেসপন্স বডি পাঠ করা হয়।DocumentBuilderFactory
এবং DocumentBuilder
ব্যবহার করে XML ডেটা প্যার্স করা হয়।Apache HTTP Client ব্যবহার করে HTTP রিকোয়েস্ট পাঠানো এবং JSON বা XML ডেটা রিড করা সম্ভব। JSON ডেটা রিড করার জন্য org.json
বা com.fasterxml.jackson
লাইব্রেরি ব্যবহার করা হয় এবং XML ডেটা রিড করার জন্য javax.xml.parsers.DocumentBuilder
ব্যবহার করা হয়। Response Body থেকে ডেটা রিড করার জন্য EntityUtils.toString()
মেথড ব্যবহার করা হয়।
common.read_more