zoukankan      html  css  js  c++  java
  • Flutter如何用调用RestFul API

    场景

    利用Flutter开发一个电商类的App,电商系统选择开源电子商城Ecmall,Ecmall移动端API利用UniConnector生成。调用前需要进行Token认证,认证通过可访问订单、发货单等。

    第一步 在Flutter应用中,创建Dio实例

    Dio dio = new Dio; // 使用默认配置
    
    // 配置dio实例
    dio.options.baseUrl="http://d.uniconnector.com/ecmall/v1"
    dio.options.connectTimeout = 5000; //5s
    dio.options.receiveTimeout=3000; 
    
    // 或者通过传递一个 options来创建dio实例
    Options options= new Options(
        baseUrl:"https://d.uniconnector.com/ecmall/v1",
        connectTimeout:5000,
        receiveTimeout:3000
    );
    
    Dio dio = new Dio(options);
    

    第二步 设置调用Ecmall RestFul Api的Token

    dio.interceptor.request.onSend = (Options options) {
      options.headers["X-UniConnector-Api-Key"] = "d3a124f1-bd1f-1ea0-aac0-2b658e1dcxxx";
      return options;
    }
    

    采用拦截器机制,在所有请求之前给Header增加Token,以便进行身份认证。

    第三步 调用Ecmall 订单的RestFul Api

    1.获取用户Id为15 的所有订单

    Response response = await dio.get("/ecm_order?filter={ 'where' : { 'buyer_id' : '15'}}")
    print(response.data.toString());
    

    2.获取商铺id为22的所有商品

    Response response = await dio.get("/ecm_goods?filter={ 'where' : { 'store_id' : '22'}}")
    print(response.data.toString());
    

    3.发布一个"Oral-B电动牙刷"商品

    FormData formData = new FormData.from({
        "store_id": 22,
        "goods_name": "Oral-B电动牙刷",
        "description": "Oral-B电动牙刷描述信息 ",
        "price": 128.00,
        "...":"..."});
    
    Response response = await dio.post("/ecm_gods", data: formData);
    print(response.data.toString());
    
  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/jerryqm/p/12878171.html
Copyright © 2011-2022 走看看