플러터는 Google에서 개발한 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크로, 다양한 기능을 쉽게 구현할 수 있습니다. 데이터 통신은 모바일 애플리케이션에서 핵심 기능 중 하나이며, 플러터에서는 HTTP 패키지를 사용하여 간편하게 HTTP 요청을 보낼 수 있습니다. 이번 포스트에서는 플러터에서 HTTP 요청을 보내는 방법에 대해 알아보겠습니다.
1. HTTP 패키지 추가
먼저, HTTP 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일을 열고, dependencies
섹션에 다음과 같이 http
패키지를 추가합니다:
dependencies:
http: ^0.13.3
추가한 뒤에는 패키지를 설치하기 위해 터미널에서 flutter pub get
명령어를 실행합니다.
2. HTTP 요청 보내기
HTTP 패키지를 추가한 후에는 http
를 import하여 사용할 수 있습니다. 아래는 GET 요청을 보내는 예제입니다:
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<void> fetchData() async {
final response = await http.get(Uri.parse('https://api.example.com/data'));
if (response.statusCode == 200) {
final responseData = jsonDecode(response.body);
// 데이터 처리 로직 작성
} else {
throw Exception('Failed to load data');
}
}
GET 요청을 보내기 위해서는 http.get()
메서드를 사용하고, 요청하는 URL을 Uri.parse()
로 파싱하여 전달합니다. response
객체를 통해 응답을 확인하고, 응답이 성공했을 경우에는 response.body
를 JSON 디코딩하여 데이터를 처리할 수 있습니다.
POST 요청을 보내는 예제는 아래와 같습니다:
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<void> sendData() async {
final response = await http.post(
Uri.parse('https://api.example.com/data'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({'key': 'value'}),
);
if (response.statusCode == 201) {
// 데이터 전송 성공
} else {
throw Exception('Failed to send data');
}
}
POST 요청을 보내기 위해서는 http.post()
메서드를 사용합니다. 요청하는 URL뿐만 아니라, 헤더와 바디를 전달할 수 있습니다. 위의 예제에서는 JSON 형식의 데이터를 전송하기 위해 Content-Type
헤더를 설정하고, 바디에는 jsonEncode()
를 사용하여 JSON 문자열로 변환한 데이터를 전달하였습니다.
3. 예외 처리
HTTP 요청에서 예외처리는 필수적입니다. 예를 들어, 인터넷 연결이 되지 않았거나 서버로부터 오류 응답이 왔을 때, 프로그램이 적절히 처리하도록 예외를 잘 처리해야 합니다. 위의 예제 코드에서는 response.statusCode
를 확인하여 성공 또는 실패 여부를 판단하고, 실패 시에는 예외를 던지도록 처리하였습니다.