অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) এ Proxy Authentication হ্যান্ডেল করা প্রয়োজন, যখন আপনি একটি HTTP রিকুয়েস্ট পাঠানোর সময় একটি প্রোক্সি সার্ভারের মাধ্যমে যাওয়ার জন্য প্রমাণীকরণ করতে চান। অনেক সময়, একটি প্রোক্সি সার্ভার ব্যবহৃত হয় যা ব্যবহারকারীকে HTTP রিকুয়েস্টের আগে প্রমাণীকরণের জন্য বাধ্য করে। এই প্রক্রিয়া সম্পাদন করতে HTTP Proxy Authentication পরিচালনা করা হয়।
CredentialsProvider
ব্যবহৃত হয়।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;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.util.EntityUtils;
public class ProxyAuthenticationExample {
public static void main(String[] args) {
// প্রোক্সি কনফিগারেশন
String proxyHost = "proxy.example.com";
int proxyPort = 8080;
String proxyUser = "proxyuser";
String proxyPassword = "proxypassword";
// CredentialsProvider তৈরি করা
BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(
new AuthScope(proxyHost, proxyPort),
new UsernamePasswordCredentials(proxyUser, proxyPassword)
);
// RequestConfig তৈরি করা, প্রোক্সি সেটিংস সহ
RequestConfig requestConfig = RequestConfig.custom()
.setProxy(new org.apache.http.HttpHost(proxyHost, proxyPort))
.build();
// HttpClient কনফিগারেশন তৈরি করা
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credentialsProvider) // CredentialsProvider যোগ করা
.setDefaultRequestConfig(requestConfig) // RequestConfig সেট করা
.build();
try {
// HTTP GET রিকুয়েস্ট তৈরি করা
HttpGet request = new HttpGet("http://example.com");
// রিকুয়েস্ট পাঠানো এবং রেসপন্স গ্রহণ
HttpResponse response = httpClient.execute(request);
// রেসপন্স স্ট্যাটাস কোড পরীক্ষা
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Status Code: " + statusCode);
// রেসপন্স কন্টেন্ট গ্রহণ করা
String responseContent = EntityUtils.toString(response.getEntity());
System.out.println("Response Content: " + responseContent);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// HttpClient বন্ধ করা
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
BasicCredentialsProvider
: এটি ব্যবহারকারীর প্রমাণীকরণ তথ্য ধারণ করে। এখানে, প্রোক্সি সার্ভারের জন্য ইউজারনেম এবং পাসওয়ার্ড সেট করা হয়েছে।AuthScope
: এটি প্রোক্সি হোস্ট এবং পোর্টের জন্য প্রমাণীকরণ তথ্য নির্ধারণ করতে ব্যবহৃত হয়। setCredentials()
মেথডের মাধ্যমে প্রোক্সি সার্ভারের জন্য প্রমাণীকরণ তথ্য প্রদান করা হয়।RequestConfig
: এখানে প্রোক্সি সেটিংস কনফিগার করা হয়েছে। setProxy()
মেথডের মাধ্যমে প্রোক্সি হোস্ট এবং পোর্ট নির্ধারণ করা হয়েছে।HttpClients.custom()
: এটি কাস্টম HttpClient
তৈরি করার জন্য ব্যবহৃত হয়, যেখানে প্রোক্সি কনফিগারেশন এবং প্রমাণীকরণ তথ্য অন্তর্ভুক্ত করা হয়েছে।httpClient.execute(request)
: রিকুয়েস্টটি প্রোক্সি সার্ভারের মাধ্যমে পাঠানো হয় এবং রেসপন্স গ্রহণ করা হয়।AuthScope
এবং CredentialsProvider
ব্যবহার করে সেটি সেট করা যেতে পারে।অ্যাপাচি HTTP ক্লায়েন্টে Proxy Authentication হ্যান্ডল করা সহজ। আপনি CredentialsProvider
ব্যবহার করে প্রোক্সি সার্ভারের জন্য প্রমাণীকরণ তথ্য প্রদান করতে পারেন এবং RequestConfig
এর মাধ্যমে প্রোক্সি সেটিংস কনফিগার করতে পারেন। এই পদ্ধতি HTTP ক্লায়েন্টের মাধ্যমে প্রোক্সি সার্ভারের সাথে নিরাপদভাবে যোগাযোগ করতে সহায়ক।
common.read_more