[flutter] 플러터에서의 HTTP 통신 처리 방법

플러터(Flutter)는 개발자가 iOS 및 Android 모바일 앱을 빠르게 개발할 수 있는 훌륭한 프레임워크입니다. 플러터를 사용하여 서버와의 통신을 처리하는 것은 매우 중요한 부분입니다. 이번 블로그 포스트에서는 플러터에서의 HTTP 통신 처리 방법에 대해 알아보겠습니다.

1. http 패키지 설치

먼저, http 패키지를 설치해야 합니다. http 패키지는 플러터에서 HTTP 요청을 처리하기 위해 필요한 패키지입니다. pubspec.yaml 파일에 다음과 같은 의존성을 추가하세요:

dependencies:
  http: ^0.13.0

의존성을 추가한 후, 패키지를 가져오기 전에 flutter pub get 명령어를 실행하여 패키지를 다운로드하십시오.

2. HTTP 요청 보내기

HTTP 요청을 보내려면 http 패키지의 get() 또는 post() 메서드를 사용해야 합니다. 예를 들어, 서버로 GET 요청을 보내는 방법은 다음과 같습니다:

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

void sendGetRequest() async {
  var url = Uri.parse('https://api.example.com/data');
  var response = await http.get(url);

  if (response.statusCode == 200) {
    // 요청이 성공했을 때 실행할 코드
    print('GET 요청 성공: ${response.body}');
  } else {
    // 요청이 실패했을 때 실행할 코드
    print('GET 요청 실패: ${response.statusCode}');
  }
}

위의 예제에서는 http.get() 메서드를 사용하여 서버로 GET 요청을 보내고, 응답을 비동기적으로 기다립니다. 응답의 상태 코드가 200인 경우 요청이 성공한 것으로 간주하고, 그렇지 않은 경우 요청이 실패한 것으로 처리합니다.

POST 요청을 보내는 방법도 마찬가지입니다:

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

void sendPostRequest() async {
  var url = Uri.parse('https://api.example.com/data');
  var response = await http.post(
    url,
    body: {'username': 'example', 'password': '123456'},
  );

  if (response.statusCode == 200) {
    // 요청이 성공했을 때 실행할 코드
    print('POST 요청 성공: ${response.body}');
  } else {
    // 요청이 실패했을 때 실행할 코드
    print('POST 요청 실패: ${response.statusCode}');
  }
}

위의 예제에서는 http.post() 메서드를 사용하여 서버로 POST 요청을 보냅니다. 요청 바디에는 JSON 형식의 데이터를 전달할 수 있습니다.

3. 예외 처리

HTTP 요청은 외부 서버와의 통신이기 때문에 예외가 발생할 수 있습니다. 예외를 처리하기 위해 try-catch 문을 사용할 수 있습니다. 예를 들어:

try {
  var response = await http.get(url);
  // 요청 성공했을 때 실행할 코드
} catch (e) {
  // 예외 처리 코드
  print('에러 발생: $e');
}

위의 예제에서는 try 블록 안에서 HTTP 요청을 시도하고, 요청이 실패하면 catch 블록에서 예외를 처리합니다.

4. 요청 헤더 설정하기

HTTP 요청을 보낼 때 특정 헤더를 설정해야 하는 경우가 있습니다. http 패키지의 요청 메서드에 headers 매개변수를 사용하여 헤더를 설정할 수 있습니다. 예를 들어:

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

void setRequestHeaders() async {
  var url = Uri.parse('https://api.example.com/data');
  var headers = {'Authorization': 'Bearer my_token'};
  var response = await http.get(url, headers: headers);

  // 응답 처리 코드
}

위의 예제에서는 headers 매개변수를 사용하여 Authorization 헤더를 설정하여 요청을 보냅니다.

결론

이제 플러터에서의 HTTP 통신 처리 방법에 대해 알아보았습니다. http 패키지를 사용하여 서버와의 통신을 쉽게 처리할 수 있습니다. 플러터를 사용하여 다양한 앱을 개발할 때 이러한 HTTP 통신 기능을 적절하게 활용하면 좋습니다.