[flutter] - Flutter에서 네트워크 통신을 위한 패키지 사용 방법

Flutter는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 강력한 UI 기능과 네이티브 수준의 성능을 제공합니다. 네트워크 통신은 대부분의 애플리케이션에서 필수적인 요소이며, Flutter에서도 간편하게 네트워크 통신을 구현할 수 있습니다.

Flutter에서 네트워크 통신을 위한 패키지 중에서 가장 인기있는 것은 http 패키지입니다. http 패키지는 Dart 언어로 작성된 HTTP 요청을 보내고 받을 수 있는 기능을 제공해줍니다.

패키지 설치

http 패키지를 사용하기 위해서는 먼저 pubspec.yaml 파일에 패키지를 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.0

위와 같이 http 패키지를 추가하고, 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드 받습니다.

네트워크 요청 보내기

http 패키지를 이용하여 네트워크 요청을 보내는 방법은 간단합니다. 먼저 import 'package:http/http.dart' as http; 를 추가하여 http 패키지를 사용할 준비를 합니다.

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

class NetworkRequestExample extends StatefulWidget {
  @override
  _NetworkRequestExampleState createState() => _NetworkRequestExampleState();
}

class _NetworkRequestExampleState extends State<NetworkRequestExample> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Network Request Example"),
      ),
      body: Center(
        child: ElevatedButton(
          child: Text("Send Request"),
          onPressed: () {
            _sendRequest();
          },
        ),
      ),
    );
  }

  void _sendRequest() async {
    var url = Uri.parse('https://api.example.com');
    var response = await http.get(url);
    
    if(response.statusCode == 200){
      // 성공적인 응답을 받았을 때의 처리
      print(response.body);
    }else{
      // 에러 처리
      print('Error: ${response.statusCode}');
    }
  }
}

위 예제 코드에서는 버튼을 클릭하면 _sendRequest 함수가 호출되어 https://api.example.com 주소로 GET 요청을 보내고, 응답을 받아와서 출력하는 기능을 구현하였습니다. await http.get(url)에서 await 키워드는 비동기 요청을 기다리는 역할을 합니다. 응답은 response 변수에 저장되며, statusCode를 통해 응답 상태를 확인할 수 있습니다.

http 패키지에는 post, put, delete 등 다양한 HTTP 메소드를 사용할 수 있으며, 요청에 헤더를 추가하거나 요청 본문에 데이터를 담을 수도 있습니다. 자세한 사용 방법은 공식 문서를 참고하시기 바랍니다.

감사합니다!