본문 바로가기
플러터

flutter : DioInterceptor

by s2jinny 2024. 6. 15.

DioInterceptor : dio 에 Interceptor 클래스를 확장한 개념. 

dio 클라이언트가 http 요청을 보내기 전, 응답을 받기 전, 에러가 발생했을 때 처리할 수 있는 다양한 메서드를 오버라이드 하여 사용한다.

 

주요 메서드 설명 

1. onRequest 메서드: 

 

  • onRequest 메서드는 HTTP 요청이 시작될 때 호출됩니다.
  • options 매개변수는 요청에 대한 설정을 포함하고 있습니다 (예: URL, 헤더, 데이터 등).
  • 여기서는 요청에 대한 헤더를 설정하고, 요청을 보내기 전에 로그를 출력하는 작업을 수행합니다.
  • _tokenRepository를 사용하여 AccessToken과 RefreshToken을 처리합니다.

2. onResponse 메서드:

  • onResponse 메서드는 HTTP 요청이 성공적으로 완료되고 응답을 받았을 때 호출됩니다.
  • response 매개변수는 서버로부터 받은 응답을 나타냅니다.
  • 여기서는 응답의 상태 코드와 데이터를 로그로 출력하고, 추가적인 처리를 수행할 수 있습니다.

3. onError 메서드:

  • onError 메서드는 HTTP 요청이 실패했을 때 호출됩니다 (예: 네트워크 문제, 서버 오류 등).
  • err 매개변수는 발생한 DioException에 대한 정보를 포함하고 있습니다.
  • 여기서는 주로 에러 처리를 하고, 특히 AccessToken이 만료되어 401 에러가 발생했을 때 RefreshToken을 사용하여 새로운 AccessToken을 얻어 요청을 재시도하는 로직을 구현합니다.

Dio 패키지의 역할

    http요청과 응답처리를 위한 다양한 기능을 제공한다.

 

  • HTTP 요청 메서드 지원 (GET, POST, PUT, DELETE 등)
  • 인터셉터(Interceptor) 기능을 통한 요청/응답 중간 처리
  • 헤더, 쿠키, 인증 처리 등 다양한 HTTP 기능 지원
  • FormData, JSON 등 다양한 데이터 형식 지원
  • 다운로드 및 업로드 기능 지원

 

ㄴ다들 화이팅

 

 

 

'플러터' 카테고리의 다른 글

Postman - 토큰 자동 저장 방법  (0) 2024.06.28
Pagination 페이지네이션이란  (0) 2024.06.28
flutter : context 가져오기  (0) 2024.06.15
Riverpod 프로바이더 종류  (0) 2024.04.09
bloc  (2) 2024.03.29