[flutter] pretty_dio_logger를 활용한 파일 업로드 및 다운로드 처리
pretty_dio_logger는 Dio 클라이언트의 네트워크 요청 및 응답을 보기 좋게 로깅해주는 Flutter 패키지입니다. 이 패키지를 사용하여 파일 업로드 및 다운로드를 처리하는 방법에 대해 알아보겠습니다.
먼저, pubspec.yaml
파일에 다음과 같이 pretty_dio_logger 패키지를 추가해줍니다.
dependencies:
pretty_dio_logger: ^2.0.0
그다음, 패키지를 설치하기 위해 터미널에서 아래 명령어를 실행합니다.
flutter pub get
파일 업로드
파일을 업로드하기 위해서는 FormData를 이용해야 합니다. 아래는 Dio를 사용하여 파일을 업로드하는 예제 코드입니다.
import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
void uploadFile() async {
Dio dio = Dio();
dio.interceptors.add(
PrettyDioLogger(
requestHeader: true,
requestBody: true,
responseBody: true,
responseHeader: true,
error: true,
),
);
FormData formData = FormData.fromMap({
'file': await MultipartFile.fromFile('파일 경로'),
});
try {
Response response = await dio.post(
'업로드 URL',
data: formData,
);
print(response.data);
} catch (e) {
print(e);
}
}
파일 다운로드
파일을 다운로드하는 경우에도 Dio를 사용하여 download 메서드를 호출하면 됩니다. 아래는 파일을 다운로드하는 예제 코드입니다.
void downloadFile() async {
Dio dio = Dio();
dio.interceptors.add(
PrettyDioLogger(
requestHeader: true,
requestBody: true,
responseBody: true,
responseHeader: true,
error: true,
),
);
try {
Response response = await dio.download(
'다운로드 URL',
'저장할 파일 경로',
onReceiveProgress: (received, total) {
if (total != -1) {
print((received / total * 100).toStringAsFixed(0) + '%');
}
},
);
print(response.data);
} catch (e) {
print(e);
}
}
pretty_dio_logger를 사용하여 Dio로 파일 업로드 및 다운로드를 처리하면 네트워크 요청과 응답을 쉽게 로깅하고 디버깅할 수 있습니다.