dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等…

第三方库 dio实现get,post网络请求。
dio库文档地址:https://pub.dev/packages/dio#-installing-tab-

添加依赖库

  1. Add this to your package’s pubspec.yaml file:
dependencies:dio: ^2.1.13
  1. You can install packages from the command line:
$ flutter pub get
  1. 查看插件安装成功与否:左侧dio-2.1.13包出现

导入库

import 'package:dio/dio.dart';

Get、Post请求示例

页面包涵两个按钮:分别触发_get()、_post() 函数。

页面代码如下:

import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'dart:convert';
import 'dart:io';// 示例1 //void _getDio() async {Response response =await Dio().get("https://jsonplaceholder.typicode.com/posts/1");print("get ====== "+response.toString());final body = json.decode(response.toString());var data = body['title'];print("title ====== "+data);
}void _postDio() async {var headers = Map<String, String>();headers['loginSource'] = 'IOS';headers['useVersion'] = '3.1.0';headers['isEncoded'] = '1';headers['bundleId'] = 'com.nongfadai.iospro';headers['Content-Type'] = 'application/json';Dio dio = Dio();dio.options.baseUrl = "http://api.juheapi.com/japi/toh";dio.options.connectTimeout = 60000;dio.options.receiveTimeout = 60000;dio.options.headers.addAll(headers);dio.options.method = 'post';var params = {'v': '1.0','month': '7','day': '25','key': 'bd6e35a2691ae5bb8425c8631e475c2a'};Options option = Options(method: 'post');Response response = await dio.post("http://api.juheapi.com/japi/toh",/*data: {"v": "1.0","month": "7","day": "25","key": "bd6e35a2691ae5bb8425c8631e475c2a"},*/data: params,options: option);if (response.statusCode == 200) {debugPrint('===请求求url: ${response.request.uri.toString()}');debugPrint('===请求headler: ${response.request.headers}');debugPrint('===请求结果: \n${response.data}\n');} else {print('请求失败');}
}class HttpDioTest extends StatefulWidget {HttpDioTest({Key key, this.title}) : super(key: key);final String title;@override_HttpDioTestState createState() => new _HttpDioTestState();
}class _HttpDioTestState extends State<HttpDioTest> {@overrideWidget build(BuildContext context) {return new Scaffold(appBar: new AppBar(title: new Text('HttpDioTest'),),body: Center(child:Column(children: <Widget>[SizedBox(height: 32.0),Text("Dio库 Get Post 练习1"),SizedBox(height: 32.0),RaisedButton(onPressed: _getDio,child: new Text('_getDio'),),RaisedButton(onPressed: _postDio,child: new Text('_postDio'),),],),),);}
}

触发_get()的结果

触发_post()的结果

特别感谢:
Flutter -------- dio网络请求
Flutter 网络请求的三种简单实现

Flutter开发之HTTP网络请求:dio库(28)相关推荐

  1. Flutter开发之HTTP网络请求:HttpClient(26)

    本文根据 在Flutter中发起HTTP网络请求 编写 对于入门的同学来说,使用的是用dart io中的HttpClient发起的请求,能让我快速接入HTTP网络请求.但HttpClient本身功能较 ...

  2. Flutter开发之HTTP网络请求:Http库(27)

    第三方库 http实现get,post网络请求. http库文档地址:https://pub.dev/packages/http#-installing-tab- 添加依赖库 Add this to ...

  3. Flutter开发之Http网络请求

    简介 Http网络请求是一门开发语言里比较常用和重要的功能,主要用于资源访问.接口数据请求和提交.上传下载文件等等操作,Http请求方式主要有:GET.POST.HEAD.PUT.DELETE.TRA ...

  4. Android 开发之Okhttp网络请求日志打印

    这里写自定义目录标题 Android 开发之Okhttp 网络请求日志打印 OkHTTP网络日志打印 Android 开发之Okhttp 网络请求日志打印 网络请求是开发的日常工作内容之一,网络日志打 ...

  5. Flutter网络请求Dio库的使用及封装

    Dart语言内置的HttpClient实现了基本的网络请求相关的操作.但HttpClient本身功能较弱,很多网络请求常用功能都不支持,因此在实际项目中,我们更多是使用dio库实现网络请求. 注:Fl ...

  6. Android开发之http网络请求返回码问题集合。

    2019独角兽企业重金招聘Python工程师标准>>> HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200  - 服务器成功返回网页  404  - 请 ...

  7. Android开发之HttpClient网络请求以Json方式提交Post请求代码

    public class PayHttpUtils {/*** @param url 请求的网址*/public static String GetSingleCabCollect(String ur ...

  8. flutter网络请求dio的get、post、上传文件、下载文件总结

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频教程在这里 Flutter 从入门实践到开发一个APP之UI基础 ...

  9. Flutter网络请求Dio使用

    import 'package:dio/dio.dart';//我的 class MyMy extends StatefulWidget {List<Widget> gedans = ne ...

最新文章

  1. 一个工程师对流程管理的思考
  2. 使用LDAP保护Java EE6中的Web应用程序
  3. MySQL函数笔记_MySQL笔记之数学函数详解
  4. npoi word在试图打开文件时遇到错误_【技巧】word在试图打开文件时遇到错误
  5. javascript中数据类型及转换、String()和toString()的区别
  6. Json学习总结(2)——Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP
  7. 文本处理工具--正则表达式
  8. 图片自适应div比例缩放上下左右居中
  9. 一旦手把手教你开发微信公众平台
  10. 域管理员与本地管理员密码破解
  11. 何为A站、B站、C站、D站、F站??
  12. NYOJ 19 擅长排列的小名 next_permutation()的用法
  13. 第二集 第一魂环 第十三章
  14. 没有人会疼自己没人会懂,会理解:伤感空间日志
  15. 如何开发一个植物识别,人工智能植物识别系统毕业设计毕设作品
  16. android 和 js 之间交互的封装
  17. Unreal Engine 5 不修改引擎添加渲染管线
  18. 小萌库- 新海诚那些唯美感人的动漫
  19. 备份数据 宝塔linux_宝塔面板教程大全--宝塔linux面板数据备份教程
  20. 【计算机体系】LFU与LRU的区别

热门文章

  1. socket通信时如何判断当前连接是否断开--select函数,心跳线程,QsocketNotifier监控socket...
  2. JavaScript引擎研究与C、C++与互调用(转)
  3. java软件工程师成长过程的学习
  4. 用到lucene的爬虫的简单实现
  5. SQL Server native client与sqlcmd单独安装
  6. Valgrind 快速入门
  7. strncpy——字符串的复制(复制前n个字符)
  8. idea无法引用jar包中的class
  9. 关于GitHub推送时发生Permission denied (publickey)的问题
  10. Android应用博客目录