Apache HTTP Client: FormData Request পাঠানো
Apache HTTP Client ব্যবহার করে FormData পাঠানো একটি সাধারণ প্রক্রিয়া, যা ফর্ম ডেটা বা অন্যান্য ধরনের ডেটা (যেমন ফাইল) POST request-এর মাধ্যমে পাঠানোর জন্য ব্যবহৃত হয়। এই ধরনের ডেটা পাঠাতে, HttpPost
এবং MultipartEntityBuilder
ব্যবহার করা হয়।
ফর্ম ডেটা পাঠাতে হলে, MultipartEntityBuilder
ব্যবহার করে POST request তৈরি করতে হয়। এটি বিভিন্ন ধরনের ডেটা (যেমন টেক্সট, ফাইল, ইমেজ ইত্যাদি) মিশ্রণ করতে সাহায্য করে এবং ডেটাকে multipart/form-data
ফরম্যাটে সার্ভারে পাঠায়।
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.File;
public class ApacheHttpClientFormDataExample {
public static void main(String[] args) {
// HttpClient তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// POST Request এর URL
String url = "https://example.com/upload";
// HttpPost অবজেক্ট তৈরি
HttpPost postRequest = new HttpPost(url);
// MultipartEntityBuilder ব্যবহার করে FormData তৈরি
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// ফর্ম ডেটা যোগ করা (যেমন text)
builder.addPart("name", new StringBody("John Doe"));
builder.addPart("age", new StringBody("30"));
// ফাইল ডেটা যোগ করা (যেমন image)
File file = new File("path/to/your/file.txt");
builder.addPart("file", new FileBody(file));
// Request Entity সেট করা
HttpEntity entity = builder.build();
postRequest.setEntity(entity);
// POST Request পাঠানো এবং Response গ্রহণ করা
HttpResponse response = httpClient.execute(postRequest);
// Response থেকে স্ট্যাটাস কোড এবং কন্টেন্ট নেওয়া
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Code: " + statusCode);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
String responseBody = EntityUtils.toString(responseEntity);
System.out.println("Response Body: " + responseBody);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
MultipartEntityBuilder.create()
: এটি একটি নতুন MultipartEntityBuilder
তৈরি করে যা বিভিন্ন ফর্ম ডেটা এবং ফাইল সংযোজন করতে ব্যবহৃত হয়।addPart("name", new StringBody("John Doe"))
: এখানে ফর্ম ফিল্ড "name" এর মান "John Doe" পাঠানো হচ্ছে।addPart("file", new FileBody(file))
: এখানে একটি ফাইল পাঠানো হচ্ছে, যা FileBody দ্বারা চিহ্নিত।setEntity()
মেথড ব্যবহার করে ফর্ম ডেটা এবং ফাইল Entity হিসেবে সেট করা হয়েছে।EntityUtils.toString()
ব্যবহার করে পাঠানো ডেটা রিড করা হয়েছে।Content-Type
: Multipart/form-data
ফরম্যাটে ডেটা পাঠানো হয়, যা ফাইল এবং অন্যান্য ফর্ম ডেটার জন্য ব্যবহার করা হয়।HttpEntity
: এটি POST request-এর মাধ্যমে পাঠানো ডেটা সংরক্ষণ করে।Apache HTTP Client ব্যবহার করে FormData পাঠানো খুবই সহজ, বিশেষত MultipartEntityBuilder
ব্যবহার করে ফর্ম ডেটা এবং ফাইল একত্রে সার্ভারে পাঠানো যায়। এই পদ্ধতি সাধারণত ফাইল আপলোড এবং ফর্ম ডেটা পাঠানোর জন্য ব্যবহৃত হয়। StringBody
এবং FileBody
-এর মাধ্যমে টেক্সট এবং ফাইল ডেটা ফর্মে পাঠানো হয় এবং সার্ভার থেকে response পাওয়া যায়।
common.read_more