관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[Flutter] 서버 API 네트워크 통신 예제 본문

플러터(Flutter) & Dart

[Flutter] 서버 API 네트워크 통신 예제

막무가내막내 2022. 5. 22. 16:18
728x90

 

 

 

 

플러터 네트워크 통신 코드 예제 메모입니다 :)

 

http 디펜던시 yaml 추가 (flutter 1.x 버전대임..)

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^0.1.2
  #TODO: Add your dependencies here.
  http: ^0.12.1

 

https://pub.dev/packages/http/versions

 

http package - All Versions

Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.

pub.dev

 

http, convert 패키지 import

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

http는 통신, convert는 json코드를 decode하는데 사용한다.

 

네트워크 통신 베이스 클래스

const coinAPIURL = 'https://rest.coinapi.io/v1/exchangerate';
const apiKey = '시크릿';

class CoinData {
  String coinRateUrl = '$coinAPIURL/BTC/USD?apikey=$apiKey';

  //TODO: Create your getCoinData() method here.
  Future getCoinData() async {
    http.Response response = await http.get(coinRateUrl);
    if (response.statusCode == 200) {
      var decodedData = jsonDecode(response.body);
      var lastPrice = decodedData['rate'];
      return lastPrice;
    } else {
      print(response.statusCode);
      throw 'getCoinData() error';
    }
  }
}

 

화면에서 베이스 클래스 사용

String coinRate = '?';
//TODO: Create a method here called getData() to get the coin data from coin_data.dart
void getData() async {
  try {
    double data = await CoinData().getCoinData();
    setState(() {
      coinRate = data.toStringAsFixed(0);
    });
  } catch (e) {
    print(e);
  }
}

 

 

 

댓글과 공감은 큰 힘이 됩니다. 감사합니다 !!

 

 

 

 

728x90
Comments