美文网首页前端技术Web前端之路前端开发
【Flutter 极速指南】网络和存储

【Flutter 极速指南】网络和存储

作者: 一俢 | 来源:发表于2019-05-15 09:46 被阅读9次

网络和存储,都是计算机需要解决的最基本问题,Flutter 也不例外,它提供的 HttpClient 和 SharedPreferences 两个模块是分别来解决网络和存储的,当然还有一些第三方提供的更简单的方式,让我们介绍几个常用的模块:

  • HttpClient
  • JSON 序列化(dart:convert)
  • SharedPreferences

HttpClient

HttpClient 是 Flutter 提供的 HTTP 网络相关的模块,它属于 dart.io 这个包中,通过如下几步可以完成一个 HTTP 请求并获取数据:

  • 创建 HttpClient 实例;
  • 发起 HTTP 请求;
  • 关闭 HTTP 请求;
  • 处理响应内容;
//...
import 'dart:io';
import 'dart:convert';

//...
get() async {
    HttpClient http = new HttpClient();
    var uri = new Uri.http('api.baichanghui.com', 'productservice/places/search', {
        //'city': '北京'
    });
    var req = await http.getUrl(uri);
    var resp = await req.close();
    if(resp.statusCode == HttpStatus.ok) {
        var json = await resp.transform(utf8.decoder).join();
        var data = jsonDecode(json);
        print(data['places']);
    }
}

JSON 序列化

使用 dart:convert 库,可以对数据进行序列化和反序列化:

String jsonString = '';
Map data = jsonDecode(jsonString);
Map data = {
    'name': 'Jay',
    'nickName': 'J'
};

String jsonString = jsonEncode(data);

SharedPreferences

通过 shared_preferences 来完成本地存储:

  • 引入包: shared_preferences: ^0.4.3
  • 实例化 SharedPreferences
  • 通过存储实例往存储中存放内容 setString(key, value)
  • 通过存储实例获取存储内容 getString(key)
import 'package:shared_preferences/shared_preferences.dart';
//...


SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('testKey', 'I am OK');
prefs.getString('testKey');

相关文章

网友评论

    本文标题:【Flutter 极速指南】网络和存储

    本文链接:https://www.haomeiwen.com/subject/aouuaqtx.html