[Flutter] http和Dio插件实现网络请求

http和dio实现网络请求

http:

配置依赖

#网络请求
http: ^0.13.4

导入包

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

声明一个列表存储请求返回的数据

  List _list = [];

声明请求方法

_getData() async {
    var apiUrl = Uri.parse('https://jdmall.itying.com/api/pcate');
    var response = await http.get(apiUrl);
    setState(() {
        //response.body的类型是String。
        _list = json.decode(response.body)['result'];
    });
}

初始化方法

@override
void initState() {
    super.initState();
    _getData();
}

使用请求的数据

@override
Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
            title: const Text('请求数据'),
        ),
        body: _list.isNotEmpty
        ? ListView.builder(
            itemCount: _list.length,
            itemBuilder: (context, index) {
                return ListTile(
                    title: Text(_list[index]['title']),
                );
            })
        : const Text('正在请求...'),
    );
}
}

Dio:

配置依赖

dio: ^4.0.4

导入包

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

声明一个列表存储请求返回的数据

List _list = [];

定义请求数据的方法

_getData() async {
    var response = await Dio().get('https://jdmall.itying.com/api/pcate');
    if (response.statusCode == 200) {
      print(response.data);
      setState(() {
        _list = response.data['result'];
      });
    } else {
      print('Response status:${response.statusCode}');
    }
    print('${response.data}');
  }

初始化方法

@override
void initState() {
    super.initState();
    _getData();
}

使用

@override
Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
            title: const Text('请求数据'),
        ),
        body: _list.isNotEmpty
        ? ListView.builder(
            itemCount: _list.length,
            itemBuilder: (context, index) {
                return ListTile(
                    title: Text(_list[index]['title']),
                );
            })
        : const Text('正在请求...'),
    );
}
}
posted @   漫游者杰特  阅读(212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2021-02-19 Flutter/Dart疫情助手
点击右上角即可分享
微信分享提示