当前位置:   article > 正文

Flutter 网络请求库http

dart http 库
http

集成http库

  1. https://pub.dartlang.org/packages/http
  2. 添加依赖
  3. dependencies:
  4. http: ^0.12.0
  5. 安装
  6. flutter packages get
  7. 导入
  8. 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:编码 例子
  1. http.post('https://flutter-cn.firebaseio.com/products.json',
  2. body: json.encode(param),encoding: Utf8Codec())
  3. .then((http.Response response) {
  4. final Map<String, dynamic> responseData = json.decode(response.body);
  5. //处理响应数据
  6. }).catchError((error) {
  7. print('$error错误');
  8. });

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

  1. void addProduct(Product product) async {
  2. Map<String, dynamic> param = {
  3. 'title': product.title,
  4. 'description': product.description,
  5. 'price': product.price
  6. };
  7. try {
  8. final http.Response response = await http.post(
  9. 'https://flutter-cn.firebaseio.com/products.json',
  10. body: json.encode(param),
  11. encoding: Utf8Codec());
  12. final Map<String, dynamic> responseData = json.decode(response.body);
  13. print('$responseData 数据');
  14. } catch (error) {
  15. print('$error错误');
  16. }
  17. }

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/596920
推荐阅读
相关标签
  

闽ICP备14008679号