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 |