Response Headers ম্যানিপুলেশন

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) Response হ্যান্ডেল করা |
147
147

অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে Response Headers ম্যানিপুলেশন একটি গুরুত্বপূর্ণ কাজ, যা HTTP প্রতিক্রিয়া থেকে অতিরিক্ত তথ্য সংগ্রহ এবং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। Response headers সার্ভারের কাছ থেকে প্রাপ্ত তথ্য, যেমন কুকি, কন্টেন্ট টাইপ, কন্টেন্ট লেংথ, কেশিং পলিসি ইত্যাদি ধারণ করে। এই তথ্যগুলি ম্যানিপুলেট বা বিশ্লেষণ করা প্রায়শই বিভিন্ন ক্ষেত্রে দরকার হয়, যেমন নিরাপত্তা, ডেটা যাচাই বা কাস্টম হেডার প্রক্রিয়াকরণ।

Response Headers ম্যানিপুলেশন

Apache HTTP Client-এ HttpResponse এর মাধ্যমে প্রতিক্রিয়ার হেডারগুলি অ্যাক্সেস করা এবং ম্যানিপুলেট করা যায়।

কোড উদাহরণ: Response Headers ম্যানিপুলেশন

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.http.Header;

public class ApacheHttpClientResponseHeaders {
    public static void main(String[] args) {
        // HttpClient তৈরি করুন
        CloseableHttpClient httpClient = HttpClients.createDefault();

        try {
            // GET অনুরোধের URL দিন
            HttpGet httpGet = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");

            // অনুরোধ পাঠিয়ে প্রতিক্রিয়া সংগ্রহ করুন
            CloseableHttpResponse response = httpClient.execute(httpGet);

            try {
                // প্রতিক্রিয়া থেকে স্ট্যাটাস কোড পান
                int statusCode = response.getStatusLine().getStatusCode();
                System.out.println("Response Status Code: " + statusCode);

                // প্রতিক্রিয়া হেডারগুলি পেতে
                Header[] headers = response.getAllHeaders();
                
                // সব হেডার প্রিন্ট করা
                System.out.println("Response Headers:");
                for (Header header : headers) {
                    System.out.println(header.getName() + ": " + header.getValue());
                }

                // একটি নির্দিষ্ট হেডার পড়া
                String contentType = response.getFirstHeader("Content-Type").getValue();
                System.out.println("Content-Type Header: " + contentType);

                // HttpEntity থেকে ডেটা পড়ুন
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    // কনটেন্ট স্ট্রিং আকারে পড়ুন
                    String responseBody = EntityUtils.toString(entity);
                    System.out.println("Response Content: " + responseBody);
                }
            } finally {
                // প্রতিক্রিয়া বন্ধ করুন
                response.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                // HttpClient বন্ধ করুন
                httpClient.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা

  1. HttpClient তৈরি করা

    CloseableHttpClient httpClient = HttpClients.createDefault();
    
    • HttpClients.createDefault() ব্যবহার করে একটি HTTP ক্লায়েন্ট তৈরি করা হয়েছে।
  2. HTTP GET অনুরোধ তৈরি করা

    HttpGet httpGet = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");
    
    • HttpGet অবজেক্ট দিয়ে GET অনুরোধ তৈরি করা হয়েছে, যেটি একটি URL (https://jsonplaceholder.typicode.com/posts/1) এ পাঠানো হয়েছে।
  3. Response Headers সংগ্রহ

    Header[] headers = response.getAllHeaders();
    
    • getAllHeaders() ব্যবহার করে সমস্ত হেডার সংগ্রহ করা হয়েছে। এই মেথড হেডারগুলির একটি অ্যারে ফেরত দেয়।
  4. Response Headers প্রিন্ট করা

    for (Header header : headers) {
        System.out.println(header.getName() + ": " + header.getValue());
    }
    
    • প্রতিটি হেডারের নাম এবং মান প্রিন্ট করা হয়েছে।
  5. নির্দিষ্ট হেডার পড়া

    String contentType = response.getFirstHeader("Content-Type").getValue();
    
    • getFirstHeader("Content-Type") ব্যবহার করে Content-Type হেডারের মান পড়া হয়েছে।
  6. HttpEntity থেকে ডেটা পড়া
    • EntityUtils.toString(entity) ব্যবহার করে প্রাপ্ত প্রতিক্রিয়া বডি (যেমন JSON ডেটা) পড়া হয়েছে।

Response Headers ম্যানিপুলেশন এর ব্যবহার

  • Content-Type: এই হেডারটি প্রতিক্রিয়া বডির ফর্ম্যাট (যেমন JSON, XML, HTML) সম্পর্কে তথ্য প্রদান করে।
  • Content-Length: সার্ভারের কাছ থেকে প্রাপ্ত ডেটার আকার (বাইটে) নির্দেশ করে।
  • Cache-Control: কেশিং পলিসি নির্ধারণ করে (যেমন, no-cache, max-age ইত্যাদি)।
  • Authorization: নিরাপত্তা সম্পর্কিত তথ্য, যেমন একটি টোকেন বা API কী।
  • Location: 301 বা 302 রিডাইরেক্টের ক্ষেত্রে নতুন URL নির্দেশ করে।

সারাংশ

HttpResponse এর মাধ্যমে Response Headers অ্যাক্সেস এবং ম্যানিপুলেট করা একটি গুরুত্বপূর্ণ দিক, বিশেষ করে যখন সার্ভারের প্রাপ্ত তথ্য (যেমন কুকি, কন্টেন্ট টাইপ, কেশিং, ইত্যাদি) প্রক্রিয়াজাত বা যাচাই করার প্রয়োজন হয়। HttpClientgetAllHeaders() এবং getFirstHeader() ব্যবহার করে হেডারগুলি পাওয়া এবং বিশ্লেষণ করা সহজ এবং কার্যকরী পদ্ধতি।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion