zoukankan      html  css  js  c++  java
  • Flutter 网络请求库http

    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来捕获错误 两种写法都可以,个人觉得第二种语法思路更明确.

     

  • 相关阅读:
    java 基础笔记 基本数据类型对象包装类
    java String 类 基础笔记
    java 线程 笔记 基础
    java 线程 基础笔记2
    java 异常学习 笔记
    广告简单概念整理-持续更新
    curl一些使用技巧
    简单学习正则表达式
    Linux命令简单操作之lsof
    Linux命令简单操作之find和xargs
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10333253.html
Copyright © 2011-2022 走看看