Flutter实现网络请求

本文介绍了在Flutter中如何使用Dio进行网络请求,并利用json_serializable进行JSON数据解析。详细阐述了从添加依赖、发起请求、解析JSON到展示数据的全过程,包括Dio的简单使用方法和json_serializable自动化序列化的优势。
摘要由CSDN通过智能技术生成
  • Flutter网络请求使用的是Dio。Dio是一个强大易用的dart http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载…

  • Flutter json数据解析是使用了json_serializable package包。它是一个自动化源代码生成器,可以为我们生成JSON序列化模板。由于序列化代码不再由我们手写和维护,我们将运行时产生JSON序列化异常的风险降至最低。

  • Flutter网络请求数据并且展示效果图:
    在这里插入图片描述

  • 数据接口
    数据是使用的聚合数据的API,影讯API合集,大家可以注册个账号,申请使用一下,像这样
    在这里插入图片描述

  • 添加依赖
    在pubspec.yaml文件中添加所需要的第三方依赖库

     environment:
      sdk: ">=2.1.0 <3.0.0"
    
     dependencies:
       flutter:
         sdk: flutter
     
       json_annotation: ^2.0.0
       connectivity: ^0.4.2
       dio: ^2.0.15
       event_bus:  ^1.0.3
       # The following adds the Cupertino Icons font to your application.
       # Use with the CupertinoIcons class for iOS style icons.
       cupertino_icons: ^0.1.2
     
     dev_dependencies:
       flutter_test:
         sdk: flutter
    
  • 网络请求过程分析

      	static netFetch(url,params,Map<String,String> header,Options option,{noTip = false}) async {
      	//获取网络的连接状态,如果没有连接网络,返回NETWORK_ERROR
         var connectivityResult = await (new Connectivity().checkConnectivity());
         if(connectivityResult == ConnectivityResult.none) {
           return new ResultData(Code.errorHandleFunction(Code.NETWORK_ERROR, "", noTip),false,Code.NETWORK_ERROR);
         }
         //请求头存放集合
         Map<String,String> headers = new HashMap();
         if(header != null) {
           headers.addAll(header);
         }
     	//option存放请求的一些配置信息
         if(option != null) {
           option.headers = headers;
         }else {
           //get请求
           option = new Options(method:
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值