Flutter基础(十一)网络请求(Dio)与JSON数据解析

本文介绍了Flutter中Dio库的使用,包括GET、POST请求及FormData操作,并展示了三种JSON数据解析方法:json.decode()、手动编写实体类和使用json_serializable自动化工具。通过实例详细讲解了网络请求和数据解析的过程。
摘要由CSDN通过智能技术生成

本文首发于公众号「刘望舒」

ReactNative入门系列
React Native组件
Flutter基础系列

前言

在Android开发中如果我们想要请求网络,可以使用HttpClent、HttpURLConnection,但在项目中一般都会使用OkHttp和Retrofit。在Flutter也是如此,系统提供了HttpClient,但在项目中一般会使用第三方库,比如http和Dio,如果你想找到更多的第三库,可以在pub.dartlang.org/ 上查找想要的库。本篇文章以Dio为例,另外还会介绍JSON数据解析方面的知识。

1.Dio的使用入门

Dio是一个强大的Dart Http请求库,支持拦截器,全局配置,FormData,请求取消,文件下载,超时等。

添加依赖
在pubspec.yaml中添加依赖。

dependencies:
  dio: 2.1.7  

官网给出了一个简单的例子:

import 'package:dio/dio.dart';
void getHttp() async {
   
  try {
   
    Response response = await Dio().get("http://liuwangshu.com");
    print(response);
  } catch (e) {
   
    print(e);
  }
}

如果想要发送一个GET请求:

Response response;
response=await dio.get("/test?id=3&name=liuwangshu")
print(response.data.toString());
// 请求参数也可以通过对象传递,上面的代码等同于:
response=await dio.get("/test",data:{
   "id":3,"name":"liuwangshu"})
print(response.data.toString());

发送一个POST 请求:

response=await dio.post("/test",data:{
   "id":3,"name":"liuwangshu"})

发送一个FormData:

FormData formData = new FormData.from({
   
    "name": "liuwangshu",
    "age": 18,
  });
response = await dio.post("/info", data: formData);

还有很多示例在github上,地址为:https://github.com/flutterchina/dio。本文的目的不是重复介绍这些示例,而是写一个网络访问的例子带大家快速入门。

2.Dio访问网络的例子

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值