Christmas Pikachu Dart Http통신 연결
개발일지/Dart

Dart Http통신 연결

ZI_CO 2022. 11. 15.

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

 

http | Dart Package

A composable, multi-platform, Future-based API for HTTP requests.

pub.dev

flutter의 경우 pub.dev에 가면 사용할 수 있는 라이브러리가 모여있다!

 

 

pubspec.yaml파일 안에 추가!!!

 

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

void main() {
  runApp(MaterialApp(
    home: Home(),
  ));
}

class Home extends StatefulWidget {
  const Home({Key? key}) : super(key: key);

  @override
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  var resText = "";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Container(
            child: Center(
              child: Text(resText ?? ""),
            ),
          ),
          TextButton(
            onPressed: () {
              setState(() {
                fetchData(3);
              }); // 버튼을 눌렀을 때 함수가 실행된다.
            },
            child: Text("데이터 요청 버튼"),
          )
        ],
      ),
    );
  }

  // 통신기능 하는 함수 만들기
  // 매개변수를 사용하면 특정하여 http 통신을 처리 할 수 있다.
  fetchData(int id) async { 
   // 다트는 비동기화 이므로 꼭 async - await를 해주어야 오류가 없다.
   // (통신에서 받아와서 뿌려줘야하기 때문에 ! )
    var uri = Uri.parse("https://jsonplaceholder.typicode.com/users/$id");
    print("----------------------------------");
    print(uri.runtimeType);

    // method 방식을 get 으로 처리
    //Http 메시지를 만들어서 요청을한다
    mHttp.Response response = await mHttp.get(uri);
    resText = response.body;
    print(response.runtimeType);
    print("----------------------------------");
    print(response.body);
    print("----------------------------------3");
    print(response.headers);
  }
}

가져올 http 파일 : https://jsonplaceholder.typicode.com/users/3

 

[결과]

 

 

'개발일지 > Dart' 카테고리의 다른 글

JSON데이터 파싱하기  (0) 2022.11.15
Stream  (0) 2022.11.13
Future(비동기) - async , await 활용 - 3  (0) 2022.11.10
Future(비동기) - async , await 활용 - 2  (0) 2022.11.10
Future(비동기) - async , await 활용 - 1  (0) 2022.11.10

댓글