用户登录

再看一下请求回来的数据 .. 你会发现,每个 Post 项目里面都有一个 id .. title .. author .. description 还有一个 imageUrl ..

回到项目 .. 找到 Post 这个类,再修改一下 .. 里面再添加一个 int 类型的 id .. 还有 String 类型的一个 author .. 还有一个 String 类型的 imageUrl ..

修改一下构造函数 .. this.id .. this.author.. this.imageUrl .. 同样还得再改一下 fromJson 这个构造方法 .. id 的值应该是 json 里的 id .. author 的值是 json 里的 author .. 还有一个 imageUrl .. 它的值是 json 里的 imageUrl ..

找到 fetchPost 这个方法 .. 名字可以换一下 .. 换成 fetchPosts .. 这个名字更合理一些.. 方法返回的东西是个 Future .. 这个 Future 上可能有的数据应该是一个 List .. 这个列表里的每个项目的类型应该是一个 Post ..

使用 get 方法请求了数据,得到了一个 response .. 下面我们可以做一下判断 .. 检查一下响应的状态码是不是等于 200 ..

如果不是 200 .. 我们可以 throw 一个 Exception ... Failed to fetch posts.

如果成功得到了响应的数据 .. 先添加一个 responseBody .. 它的值用一下 json.decode .. 处理一下 response 里的 body ..

下面再添加一个 List 数据 .. 项目的类型是 Post .. 这个数据的名字叫 posts .. 用一下 responseBody .. 具体的文章列表是在 posts 这个属性里面 ..

然后用一下 map 方法处理一下这个列表数据 .. 返回的项目是 Post .. 处理的时候当前项目可以叫 item .. 返回的值用一下 Post.fromJson .. 把 item 交给它 .. 这个构造方法会把一个 Map 数据转换成一个 Post 数据 .. 处理完以后,用一下 toList ,把这些项目转换成一个列表 ..

再 return 一下这个 posts ..

在这个 initState 里面 .. 执行一下 fetchPosts .. 接着用一个 then ... 在 Future 上有数据以后 .. 这个数据起个名字可以叫 value .. 然后在控制台上输出这个 value 的值 ..

执行一下 hot restart ...

在控制台上会输出一组列表 .. 列表里的每个项目的类型都是一个 Post 数据 ..

使用请求数据:把响应的数据转换成自定义 Dart 对象《 Flutter 移动应用:网络请求 》

统计

9936
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点