文档章节

Flutter 网络请求库http

她吃西红柿
 她吃西红柿
发布于 2018/10/07 11:00
字数 272
阅读 3278
收藏 0

http

集成http库

https://pub.dartlang.org/packages/http
添加依赖
dependencies:
  http: ^0.12.0
安装
flutter packages get
导入
import 'package:http/http.dart' as http;

常用方法

get(dynamic url, { Map<String, String> headers }) → Future<Response>
  • (必须)url:请求地址
  • (可选)headers:请求头
post(dynamic url, { Map<String, String> headers, dynamic body, Encoding encoding }) → Future<Response>
  • (必须)url:请求地址
  • (可选)headers:请求头
  • (可选)body:参数
  • (编码)Encoding:编码 例子
http.post('https://flutter-cn.firebaseio.com/products.json',
            body: json.encode(param),encoding: Utf8Codec())
    .then((http.Response response) {
      final Map<String, dynamic> responseData = json.decode(response.body);
     //处理响应数据
     
    }).catchError((error) {
      print('$error错误');
    });

返回值都用到Dart Futures, 类似JavaScript中的promise 官方推荐使用async/await来调用网络请求

  void addProduct(Product product) async {
    Map<String, dynamic> param = {
      'title': product.title,
      'description': product.description,
      'price': product.price
    };
    try {
      final http.Response response = await http.post(
          'https://flutter-cn.firebaseio.com/products.json',
          body: json.encode(param),
          encoding: Utf8Codec());

      final Map<String, dynamic> responseData = json.decode(response.body);
      print('$responseData 数据');
      
    } catch (error) {
      print('$error错误');
    }
  }

try catch来捕获错误 两种写法都可以,个人觉得第二种语法思路更明确.

© 著作权归作者所有

她吃西红柿
粉丝 43
博文 52
码字总数 25812
作品 0
杭州
iOS工程师
私信 提问
Flutter开发系列教程之网络请求

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

xiangzhihong
07/31
0
0
二、Flutter网络请求数据

目录 一、集成dio 二、ListView 三、请求网络数据 四、刷新ListView 五、flutter run 一、集成dio dio: ^2.1.10是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、...

星星编程
07/09
0
0
Flutter -------- 新手 WanAndroid 项目练习

一个简单Flutter项目wanandroid,先前用Kotlin来开发过,适合新手练习。 用到的库 包含功能:   http+数据解析   网络请求数据列表展示   Banner轮播   WebView跳转详情   Drawer侧...

切切歆语
06/14
68
0
Flutter 常用第三方库整理

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

八怪不姓丑
06/11
0
0
Flutter基础(十一)网络请求(Dio)与JSON数据解析

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 在Android开发中如果我们想要请求网络,可以使用HttpClent、HttpURLConnection,但在项目中一般都会...

刘望舒
07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 你已经是个成熟的熊猫了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @Sharon啊 :#今日歌曲推荐# 分享黑鸭子的单曲《羞答答的玫瑰静悄悄的开》 《羞答答的玫瑰静悄悄的开》- 黑鸭子 手机党少年们想听歌,请使劲儿...

小小编辑
49分钟前
271
8
结合Spring Security进行web应用会话安全管理

在本文中,将为大家说明如何结合Spring Security 和Spring Session管理web应用的会话。 一、Spring Security创建使用session的方法 Spring Security提供4种方式精确的控制会话的创建: alwa...

fightinging
55分钟前
4
0
83、Mybatis和Hibernate重要区别

Mybatis;入门简单,程序容易上手开发,节省开发成本。Mybatis需要程序猿自己编写sql语句,是一个不完全的ORM框架,对sql修改和优化非常容易实现。 Mybatis适合开发需求变更频繁的系统,比如...

lianbang_W
今天
6
0
设计模式之状态模式

定义 Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改...

陈年之后是青葱
今天
6
0
Python常用模块之os.path

os.path.abspath(path) 输入相对路径,返回绝对路径 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32Type "copyright", "credits" or "lic......

松鼠大帝
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部