文档章节

Flutter -------- dio网络请求

切切歆语
 切切歆语
发布于 05/19 21:40
字数 348
阅读 32
收藏 2

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

1.添加依赖#

dependencies:
  dio: 2.1.x  #latest version

2.导入库



import 'package:dio/dio.dart'; //导入前需要配置

get

 String data;
  void _getDio() async {
    Response response =
        await Dio().get("https://jsonplaceholder.typicode.com/posts/1");
    print("get ====== "+response.toString());
    final body = json.decode(response.toString());

    setState(() {
      data = body['title'];
      print("title ====== "+data);
    });
  }

post

 

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('请求失败');
    }
  }

调用:

import 'dart:convert';
import 'package:flutter/material.dart';

import 'package:dio/dio.dart';

class HttpDemo1 extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new HttpPage();
  }
}

class HttpPage extends State<HttpDemo1> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _getDio();
    _postDio();
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Dio网络请求"),
      ),
      body: new Center(
        child: new Text("$data"),
      ),
    );
  }
}

控制台

 


Dio库 说明文档

https://pub.dev/packages/dio

© 著作权归作者所有

切切歆语
粉丝 21
博文 341
码字总数 232987
作品 0
杭州
程序员
私信 提问
Flutter 封装 dio,支持 Restful Api

背景 Dio 是 Flutter 第三方开源的网络请求库,直接使用原生 api 有点冗余,二次封装使用更加方便。 为什么要封装 dio? 做一些公共处理。 要做哪些公共处理? 统一处理请求前缀;( 不用每个...

dkvirus
01/31
0
0
Flutter Http库Dio 2.1正式发布

Dio 是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等。目前Dio在pub上综合得分100分,排名已上榜pub首页(Al...

wendux
03/12
0
0
Flutter 常用第三方库整理

网络请求 Dio dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等... http dart官方网络请求库 Gson 1.jsona...

八怪不姓丑
06/11
0
0
强大的Flutter Http请求开源库-dio

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等... 文档语言: English | 中文简体 dio 一个强大的D...

lazydu
2018/05/23
0
0
从零学习Fluter(五):Flutter中手势滑动拖动已经网络请求

从六号开始搞Flutter,到今天写这篇blog已经过了4天时间,文档初步浏览了一遍,写下了这个demo。demo源码分享在github上,现在对flutter有种说不出的喜欢了。大家一起搞吧! 废话不多说,开始...

topbrids
2018/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

backbone源码学习中的知识点整理(一)

一、self var root = (typeof self == 'object' && self.self === self && self) || (typeof global == 'object' && global.global === global && global); 现代web之前的window.self和self ......

学霸猫
37分钟前
2
0
linux高级文件数据操作

cat :显示切割数据 -f:选择显示切割列; -s:比现实没有分割的行 -d:自定义分隔符 cut -d ‘ ’-f 1,3 a.txt : 以空格为分隔符显示第一列和第三列;这种情况不能分隔的行也会显示出来,如...

为何不可1995
今天
2
0
在Javascript中Eval函数的使用

【eval()函数】 JavaScript有许多小窍门来使编程更加容易。 其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。 举个小例子: var the_unevaled_ans...

花漾年华
今天
3
0
[日更-2019.5.22、23] Android 系统的分区和文件系统(二)--Android 文件系统中的文件

声明 Android系统中有很多分区,每个分区内的文件系统一般都不同的,使用ADB进入系统/目录下可发现挂载这很多的目录,不同的目录中可来自不同的分区及文件系统; 那么,就来分下这些目录里面...

小馬佩德罗
今天
2
0
数组操作相关算法

/*数组的相关的算法操作:1、在数组中找最大值/最小值*/class Test11_FindMax{public static void main(String[] args){int[] array = {4,2,6,8,1};//在数组中找最大...

architect刘源源
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部