[flutter] 플러터 GET 요청에서 바이너리 파일을 다운로드하는 방법은 무엇인가요?

플러터에서 GET 요청을 통해 바이너리 파일을 다운로드하는 방법에는 여러 가지가 있습니다. 하나의 방법은 http 패키지를 사용하여 요청을 보내고 파일을 다운로드하는 것입니다. 다음은 해당 방법을 사용하여 바이너리 파일을 다운로드하는 예제 코드입니다.

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:io';
import 'dart:typed_data';

class DownloadFile extends StatelessWidget {
  final String fileUrl = 'https://example.com/path_to_file';

  Future<void> _downloadFile() async {
    var response = await http.get(Uri.parse(fileUrl));
    if (response.statusCode == 200) {
      final contentDisposition = response.headers['content-disposition']!;
      final fileName = contentDisposition.substring(contentDisposition.indexOf('filename=') + 9);
      final bytes = response.bodyBytes;
      final dir = await getDownloadsDirectory();
      final file = File('${dir.path}/$fileName');
      await file.writeAsBytes(bytes);

      // 다운로드 완료 후 알림 표시 등 추가 작업 수행

    } else {
      // 파일 다운로드 실패 처리
    }
  }

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: _downloadFile,
      child: Text('파일 다운로드'),
    );
  }
}

위의 예제 코드에서는 http 패키지를 사용하여 GET 요청을 보내고 서버에서 받은 응답에서 파일의 내용과 파일 이름을 추출하여 다운로드 디렉토리에 저장합니다. 저장된 파일은 후속 작업(예: 알림 표시 등)을 수행할 수 있습니다.

이 예제는 http 패키지를 사용하는 방법 중 하나입니다. 다른 패키지를 사용할 수도 있으며, 해당 패키지의 문서와 예제 코드를 참조하여 다운로드 기능을 구현할 수도 있습니다.