[flutter] 플러터를 사용하여 서버와의 쿠키 공유 방법

서버와의 통신을 위해 쿠키를 사용하는 경우, 플러터를 이용하여 쿠키를 공유하는 방법에 대해 알아보겠습니다.

1. Flutter에서 HTTP 패키지 import하기

HTTP 통신을 위해 Dart 언어에서 제공하는 http 패키지를 import 해야합니다. 프로젝트의 pubspec.yaml 파일에 다음과 같이 dependency를 추가해줍니다.

dependencies:
  http: ^0.13.3

2. 서버로부터 쿠키 받아오기

HTTP 패키지를 이용하여 서버로부터 쿠키를 받아올 수 있습니다. 다음은 http 패키지를 사용하여 GET 요청을 보내고, 응답으로부터 쿠키를 받아오는 예시 코드입니다.

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

void getCookie() async {
  var response = await http.get(Uri.parse('http://example.com'));
  var cookie = response.headers['set-cookie'];

  print('Received cookie: $cookie');
}

위 코드에서 http.get 메서드를 통해 GET 요청을 보내고, response.headers['set-cookie']를 통해 응답 헤더에서 쿠키를 받아옵니다.

3. 서버에 쿠키 전송하기

서버로 쿠키를 전송하기 위해서는 HTTP 요청의 헤더에 쿠키를 포함시켜야 합니다. 다음은 http 패키지를 사용하여 쿠키를 전송하는 예시 코드입니다.

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

void sendCookie(String cookie) async {
  var headers = {
    'Cookie': cookie,
  };

  var response = await http.get(Uri.parse('http://example.com'), headers: headers);
  print('Received response: ${response.body}');
}

위 코드에서 headers 변수에 쿠키를 포함시킨 후, http.get 메서드의 headers 매개변수로 전달하여 요청을 보냅니다.

4. 쿠키 저장과 재사용

Flutter 앱에서 쿠키를 재사용하기 위해서는 쿠키를 저장하는 방법이 필요합니다. 여러 가지 방법 중에는 shared_preferences 패키지를 사용하는 방법이 있습니다. 다음은 shared_preferences 패키지를 사용하여 쿠키를 저장하고 재사용하는 예시 코드입니다.

import 'package:shared_preferences/shared_preferences.dart';

void saveCookie(String cookie) async {
  var prefs = await SharedPreferences.getInstance();
  await prefs.setString('cookie', cookie);
}

Future<String> getSavedCookie() async {
  var prefs = await SharedPreferences.getInstance();
  return prefs.getString('cookie');
}

위 코드에서는 SharedPreferences.getInstance()를 호출하여 SharedPreferences 인스턴스를 얻은 후, setString 메서드를 통해 쿠키를 저장하고 getString 메서드를 통해 저장된 쿠키를 가져옵니다.

결론

위에서 소개한 방법들을 사용하여 플러터 앱에서 서버와의 쿠키 공유를 할 수 있습니다. 쿠키를 받아오고 전송하는 방법을 숙지하고, 필요에 따라 쿠키를 저장하여 재사용하는 방법을 활용하세요.

더 자세한 내용은 http 패키지 문서shared_preferences 패키지 문서를 참고하시기 바랍니다.