Angularでレスポンスヘッダーを取得する方法


  1. HttpClientを使用する方法:

AngularのHttpClientモジュールを使用してHTTPリクエストを送信し、レスポンスヘッダーを取得することができます。以下は、GETリクエストの例です。

import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) {}
getData() {
  this.http.get('https://api.example.com/data', { observe: 'response' })
    .subscribe(response => {
      const headers = response.headers;
      // レスポンスヘッダーの処理
    });
}
  1. HttpHeadersオブジェクトを使用する方法:

HttpHeadersオブジェクトを使用して、HTTPリクエストにカスタムヘッダーを追加し、レスポンスヘッダーを取得することもできます。以下は、GETリクエストの例です。

import { HttpClient, HttpHeaders } from '@angular/common/http';
constructor(private http: HttpClient) {}
getData() {
  const headers = new HttpHeaders().set('Authorization', 'Bearer token');
  this.http.get('https://api.example.com/data', { headers, observe: 'response' })
    .subscribe(response => {
      const headers = response.headers;
      // レスポンスヘッダーの処理
    });
}
  1. Interceptorを使用する方法:

AngularのInterceptorを使用すると、すべてのHTTPリクエストとレスポンスをキャプチャし、ヘッダーを取得することができます。以下は、Interceptorの例です。

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class HeaderInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).pipe(
      tap(event => {
        if (event instanceof HttpResponse) {
          const headers = event.headers;
          // レスポンスヘッダーの処理
        }
      })
    );
  }
}

これらの方法を使用することで、Angularでレスポンスヘッダーを取得することができます。必要に応じて、コードをカスタマイズして使用してください。