서버와 데이터 주고받기

철웅·2023년 3월 13일
0

Flutter_Tips

목록 보기
3/10
post-thumbnail

🧑🏻‍💻 서버에 Get 요청 날리기

📌 셋팅 작업

먼저 pubspec.yaml 파일에서

dependencies:
  http: ^0.13.4

추가 후 전구에서 pub get 누르기
http의 최신버전은 https://pub.dev/packages/http 참고

실제로 작업할 때는 http말고 Dio라는 패키지를 활용하자
코드가 짧아지고 편의성 기능도 더 많다.

그 후 main.dart에 import 추가

import 'package:http/http.dart' as http;	// 방금 설치한거
import 'dart:convert';	// JSON을 일반 자료형으로 변환

추가로 android는 해당 설정을 더 해줘야 함 ios는 필요 없다
android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

📌 요청 받기

getData() async {
  var result = await http.get( Uri.parse('서버 url') );
  print( jsonDecode(result.body) )
} 
  • 받아올 동안 다음 코드가 실행되면 안되므로 await 거의 필수적으로 같이 써줘야 함
  • await 써야 하니까 임의의 함수 만들어서 async도 앞에 붙여주자
  • jsonDecode : json 형식을 알맞은 자료형으로 자동 변환시켜줌
  • 홈 화면에 나와야 하는 데이터를 가져오는 경우 보통 Initial State 에서 가져온다. (initState 안에 getData()를 넣으면 된다.)

📌 에러 체크

getData() async {
  var result = await http.get(Uri.parse('서버 url'));
  
  if (result.statusCode == 200) {
    print( jsonDecode(result.body) );
  } else {
    throw Exception('실패');
  }
} 
  • result.statusCode를 출력해보면 성공여부를 알 수 있다.
  • 성공하면 대부분 200이 뜬다.
  • throw는 콘솔창에 빨간색으로 에러내주는 코드
  • try, catch 문법을 활용하는게 더 좋다.

0개의 댓글