본문 바로가기
Flutter/Package

플러터에서 Dio 패키지 사용하기[API]

by Maccrey Coding 2024. 7. 13.
반응형

 

안녕하세요! 오늘은 플러터(Flutter)에서 Dio 패키지를 사용하여 HTTP 요청을 보내는 방법과 몇 가지 유용한 옵션에 대해 알아보겠습니다.

Dio는 플러터에서 네트워크 요청을 간편하게 할 수 있게 해주는 패키지입니다.

1. Dio 패키지 설치하기

먼저, pubspec.yaml 파일에 Dio 패키지를 추가해야 합니다.

dependencies:
  dio: ^4.0.0

파일을 저장한 후, 터미널에서 flutter pub get 명령어를 실행해 패키지를 설치합니다.

2. 기본 사용법

Dio를 사용하여 간단한 GET 요청을 보내는 예제를 보겠습니다.

import 'package:dio/dio.dart';

void main() async {
  final dio = Dio();

  try {
    final response = await dio.get('https://jsonplaceholder.typicode.com/posts/1');
    print(response.data);
  } catch (e) {
    print('Error: $e');
  }
}

이 코드에서는 Dio() 객체를 생성하고, get 메서드를 사용하여 HTTP GET 요청을 보냅니다. 요청이 성공하면 response.data에 응답 데이터가 저장됩니다.

3. POST 요청 보내기

POST 요청도 매우 간단합니다. 다음은 POST 요청을 보내는 예제입니다.

import 'package:dio/dio.dart';

void main() async {
  final dio = Dio();

  try {
    final response = await dio.post(
      'https://jsonplaceholder.typicode.com/posts',
      data: {
        'title': 'foo',
        'body': 'bar',
        'userId': 1,
      },
    );
    print(response.data);
  } catch (e) {
    print('Error: $e');
  }
}

여기서는 post 메서드를 사용하여 데이터를 서버에 보냅니다. data 필드에 전송할 데이터를 넣으면 됩니다.

4. 옵션 설정하기

Dio는 다양한 옵션을 설정할 수 있습니다. 그 중 몇 가지를 소개합니다.

Timeout 설정

요청 시간이 너무 오래 걸리는 것을 방지하기 위해 timeout을 설정할 수 있습니다.

final dio = Dio(BaseOptions(
  connectTimeout: 5000,
  receiveTimeout: 3000,
));

여기서 connectTimeout은 연결 시간 초과를, receiveTimeout은 응답 시간 초과를 설정합니다.

헤더 설정

HTTP 헤더를 설정할 수도 있습니다.

final dio = Dio(BaseOptions(
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
  },
));

여기서는 Authorization 헤더를 설정하는 예제입니다.

5. 에러 처리

Dio는 다양한 방식으로 에러를 처리할 수 있습니다. try-catch 문을 사용하여 에러를 잡아낼 수 있습니다.

try {
  final response = await dio.get('https://jsonplaceholder.typicode.com/posts/1');
  print(response.data);
} on DioError catch (e) {
  if (e.response != null) {
    print('Error: ${e.response?.statusCode} ${e.response?.data}');
  } else {
    print('Error: ${e.message}');
  }
}

에러가 발생하면 DioError 객체에 에러 정보가 저장됩니다.

마무리

이렇게 해서 플러터에서 Dio 패키지를 사용하는 방법과 몇 가지 유용한 옵션에 대해 알아보았습니다.

Dio를 사용하면 네트워크 요청을 매우 간편하게 처리할 수 있습니다.

더 많은 기능과 옵션은 Dio 공식 문서를 참고하세요.

행복한 코딩 되세요!

반응형