[dart] HTTP 요청 시에 타임아웃 설정하기

Dart 프로그램을 개발할 때, HTTP 요청을 보낼 때에는 대부분 타임아웃 설정이 필요합니다. 네트워크 연결이 끊겨있는 경우나 요청이 오랫동안 처리되지 않는 상황을 방지하기 위함입니다.

이 포스트에서는 Dart 언어를 사용하여 HTTP 요청 시에 타임아웃을 설정하는 방법에 대해 살펴보겠습니다.

http 패키지 사용하기

Dart에서 HTTP 요청을 보내기 위해서는 http 패키지를 사용할 수 있습니다. 이 패키지는 간단하고 사용하기 쉬운 API를 제공하여 HTTP 요청을 보내고 응답을 처리할 수 있게 해줍니다.

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

dependencies:
  http: ^0.14.0

위 예시에서는 http 패키지의 0.14.0 버전을 사용하겠습니다.

타임아웃 설정하기

HTTP 요청 시에 타임아웃을 설정하는 방법은 간단합니다. http 패키지의 readget 등의 메소드를 사용할 때 timeout 매개변수를 설정하면 됩니다.

아래는 타임아웃을 5초로 설정하여 GET 요청을 보내는 예제 코드입니다.

import 'package:http/http.dart' as http;
import 'dart:async';

void main() async {
  try {
    var response = await http.get(
      Uri.parse('https://example.com'),
      timeout: Duration(seconds: 5),
    );
    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  } on TimeoutException catch (e) {
    print('Timeout Error: $e');
  } on Error catch (e) {
    print('Error: $e');
  }
}

위 코드에서는 http.get 메소드의 timeout 매개변수에 Duration 객체를 전달하여 타임아웃을 설정했습니다. 5초가 지나도 응답이 오지 않으면 TimeoutException이 발생합니다.

요약

Dart 언어를 사용하여 HTTP 요청 시에 타임아웃을 설정하는 방법에 대해 알아보았습니다. http 패키지의 간편한 API와 timeout 매개변수를 활용하여 네트워크 요청의 응답을 관리할 수 있습니다.

타임아웃 설정을 통해 안정적이고 효율적인 네트워크 통신을 구현할 수 있습니다.

이상으로 HTTP 요청 시에 타임아웃 설정하기에 대한 내용을 마치겠습니다. 감사합니다.