[dart] HTTP 요청 시에 인터셉터 사용하기

인터셉터 설정

Dart에서 HTTP 요청을 보내기 위해 http 패키지를 사용합니다. 이 패키지에서는 Client 클래스를 사용하여 HTTP 요청을 보냅니다. Client 클래스는 send 메서드를 제공하며, 이를 사용하여 HTTP 요청을 보낼 수 있습니다.

인터셉터는 http 패키지의 BaseClient 클래스를 상속하여 구현할 수 있습니다. 아래는 간단한 예시 코드입니다.

import 'package:http/http.dart' as http;

class CustomInterceptor extends http.BaseClient {
  final http.Client _httpClient = http.Client();

  @override
  Future<http.StreamedResponse> send(http.BaseRequest request) {
    // 요청 수정 및 추가 기능 수행
    // 예를 들어, 헤더 추가 또는 요청 로깅 등

    return _httpClient.send(request);
  }
}

위의 코드에서 CustomInterceptor 클래스는 BaseClient를 상속하고 send 메서드를 오버라이드하여 필요한 요청 수정 및 추가 기능을 수행합니다.

인터셉터 사용

인터셉터를 사용하여 HTTP 요청을 보내려면 다음과 같이 인터셉터를 생성하여 http.Client에 설정해야 합니다.

void main() async {
  final client = http.Client();
  final interceptor = CustomInterceptor();

  client = http.Client(client, interceptors: [interceptor]);

  final response = await client.get(Uri.parse('https://example.com'));
  print(response.statusCode);

  client.close();
}

위 코드에서 CustomInterceptor를 생성하고, http.Client를 생성할 때 interceptors 매개변수를 사용하여 인터셉터를 설정합니다.

이제 Dart에서 HTTP 요청 시에 인터셉터를 사용하는 방법에 대한 이해를 얻었습니다. 인터셉터를 사용하여 요청 및 응답에 대한 추가적인 기능을 쉽게 구현할 수 있습니다.