অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে অটোমেটিক রিডাইরেকশন হ্যান্ডেল করা একটি সাধারণ প্রক্রিয়া, যা HTTP অনুরোধে রিডাইরেকশন (যেমন 301, 302 HTTP স্ট্যাটাস কোড) স্বয়ংক্রিয়ভাবে অনুসরণ করতে সহায়ক। এটি সঠিকভাবে কনফিগার করলে ক্লায়েন্ট কোনো রিডাইরেক্টেড URL এ যাওয়ার জন্য স্বয়ংক্রিয়ভাবে নতুন অনুরোধ পাঠাতে সক্ষম হয়।
অ্যাপাচি HTTP ক্লায়েন্টে Automatic Redirect হ্যান্ডেল করতে নিচের পদ্ধতিগুলি অনুসরণ করা হয়:
অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেকশন সক্ষম করতে, RequestConfig
কনফিগারেশন ব্যবহার করা হয়, যা setRedirectsEnabled(true)
মেথডের মাধ্যমে রিডাইরেকশন সক্ষম করতে পারে। যদি এটি false
থাকে, তবে ক্লায়েন্ট রিডাইরেকশন অনুসরণ করবে না।
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.core5.util.TimeValue;
public class ApacheHttpClientRedirectExample {
public static void main(String[] args) throws Exception {
// RequestConfig কনফিগার করা
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // কানেকশন টাইমআউট
.setResponseTimeout(5000) // রেসপন্স টাইমআউট
.setRedirectsEnabled(true) // রিডাইরেকশন সক্ষম করা
.build();
// HTTP ক্লায়েন্ট তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build()) {
// GET অনুরোধ তৈরি করা
HttpGet request = new HttpGet("http://example.com");
// HTTP অনুরোধ পাঠানো এবং রিডাইরেকশন স্বয়ংক্রিয়ভাবে অনুসরণ করা
try (CloseableHttpResponse response = httpClient.execute(request)) {
System.out.println("HTTP Response Status Code: " + response.getCode());
System.out.println("Response: " + response.getEntity());
}
}
}
}
RequestConfig.setRedirectsEnabled(true)
মেথডটি রিডাইরেকশন সক্ষম করে। এর মাধ্যমে HTTP ক্লায়েন্ট কোনো 301, 302 বা অন্য রিডাইরেকশন স্ট্যাটাস কোড পেলেই নতুন URL-এ অনুরোধ পাঠাতে সক্ষম হবে।setMaxRedirects(5)
এর মাধ্যমে আপনি রিডাইরেকশন সংখ্যাটি নির্ধারণ করতে পারেন।RequestConfig
কনফিগারেশনে আপনি রিডাইরেকশন সংখ্যা সীমিত করতে পারেন। উদাহরণস্বরূপ, ৫টি রিডাইরেকশন পর ক্লায়েন্ট আর রিডাইরেক্ট অনুসরণ করবে না।
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setResponseTimeout(5000)
.setRedirectsEnabled(true) // রিডাইরেকশন সক্ষম করা
.setMaxRedirects(5) // সর্বোচ্চ ৫টি রিডাইরেকশন
.build();
যখন ক্লায়েন্ট একটি রিডাইরেকশন প্রাপ্তি করে, এটি রিডাইরেকশন URL অনুসরণ করবে এবং রিডাইরেক্টেড URL-এ অনুরোধ পাঠাবে। রিডাইরেকশন প্রক্রিয়া সম্পন্ন হলে আপনি রিডাইরেকশন প্রাপ্ত URL, HTTP স্ট্যাটাস কোড ইত্যাদি দেখতে পারেন।
যদি আপনি রিডাইরেকশন হ্যান্ডেল না করতে চান, তবে setRedirectsEnabled(false)
ব্যবহার করতে পারেন।
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setResponseTimeout(5000)
.setRedirectsEnabled(false) // রিডাইরেকশন নিষ্ক্রিয় করা
.build();
অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেকশন স্বয়ংক্রিয়ভাবে হ্যান্ডেল করার জন্য RequestConfig
ব্যবহার করা হয়। setRedirectsEnabled(true)
মেথডটি রিডাইরেকশন সক্ষম করে এবং setMaxRedirects()
এর মাধ্যমে রিডাইরেকশন সংখ্যা সীমিত করা যায়। এইভাবে, ক্লায়েন্ট একাধিক রিডাইরেকশন অনুসরণ করতে পারে, যা আপনাকে একটি স্থির URL এর পরিবর্তে রিডাইরেক্টেড URL এর মাধ্যমে প্রয়োজনীয় ডেটা সংগ্রহ করতে সহায়ক।
common.read_more