博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter 网络请求库http
阅读量:5974 次
发布时间:2019-06-19

本文共 1379 字,大约阅读时间需要 4 分钟。

hot3.png

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
headers }) → Future
  • (必须)url:请求地址
  • (可选)headers:请求头
post(dynamic url, { Map
headers, dynamic body, Encoding encoding }) → Future
  • (必须)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
responseData = json.decode(response.body); //处理响应数据 }).catchError((error) { print('$error错误'); });

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

void addProduct(Product product) async {    Map
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
responseData = json.decode(response.body); print('$responseData 数据'); } catch (error) { print('$error错误'); } }

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

转载于:https://my.oschina.net/roycehe/blog/2223359

你可能感兴趣的文章
cluster maintain manager Software群集管理软件
查看>>
我的菜单
查看>>
什么是ajax?
查看>>
Java基础
查看>>
spark编程python实例
查看>>
修改notepad++的主题(背景色、前景色、字体等)
查看>>
常用模块-random,shutil,shevle,logging
查看>>
C# 可变数量参数的使用
查看>>
了解断言
查看>>
Web架构
查看>>
嵌入式C语言自我修养 01:Linux 内核中的GNU C语言语法扩展
查看>>
python list 线性访问和随机访问比较
查看>>
python笔记(三)---文件读写、修改文件内容、处理json、函数
查看>>
jdk安装
查看>>
[九省联考2018]IIIDX
查看>>
Mysql学习总结(10)——MySql触发器使用讲解
查看>>
C# XML与对象互相转换
查看>>
Java中如何使封装自己的类,建立并使用自己的类库?
查看>>
spring 源代码地址
查看>>
为什么是List list = new ArrayList() 而不直接用ArrayList
查看>>