[flutter] Dio를 사용하여 이미지를 다운로드하는 방법을 알려주세요.
Dio는 Flutter에서 HTTP 요청을 쉽게 처리할 수 있는 라이브러리입니다. Dio를 사용하여 이미지를 다운로드하는 방법에 대해 알아보겠습니다.
Dio 및 dio_image 다운로드 및 설치
먼저, pubspec.yaml
파일에 dio 및 dio_image 패키지를 추가해야 합니다.
dependencies:
dio: ^4.0.0
dio_image: ^3.0.0
그런 다음, 터미널에서 다음 명령을 사용하여 패키지를 설치합니다.
flutter pub get
이미지 다운로드 코드 작성
이제 이미지를 다운로드하는 코드를 작성해 보겠습니다.
import 'package:dio/dio.dart';
import 'package:dio_image/dio_image.dart';
void downloadImage() async {
Dio dio = Dio();
Response<ResponseBody> response = await dio.get<ResponseBody>(
'https://example.com/image.jpg',
options: Options(responseType: ResponseType.stream),
);
await response.data!.writeToFile('path_to_save_image.jpg');
}
위 코드에서 get
메서드를 사용하여 이미지를 다운로드하고, responseType
을 stream
으로 설정하여 응답을 스트림으로 처리합니다. 그리고 writeToFile
메서드를 사용하여 이미지를 파일로 저장합니다.
완성된 예제
아래는 전체적인 이미지 다운로드 코드의 완성된 예제입니다.
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'package:dio_image/dio_image.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Image Download'),
),
body: Center(
child: ElevatedButton(
onPressed: downloadImage,
child: Text('Download Image'),
),
),
),
);
}
}
Future<void> downloadImage() async {
Dio dio = Dio();
Response<ResponseBody> response = await dio.get<ResponseBody>(
'https://example.com/image.jpg',
options: Options(responseType: ResponseType.stream),
);
await response.data!.writeToFile('path_to_save_image.jpg');
}
이제 Dio를 사용하여 Flutter 앱에서 이미지를 다운로드하는 방법을 알게 되었습니다. 만약 질문이 있거나 추가 정보가 필요하시면 기술 블로그를 참고하시기 바랍니다.