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

        场景

      利用Flutter开发一个电商类的App,电商系统选择开源电子商城Ecmall,Ecmall移动端API利用UniConnector生成( 生成Ecmall RestFul API方法)。

    调用前需要进行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

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

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

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

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

      发布一个"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());

     

  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/jerryqm/p/12875890.html
Copyright © 2011-2022 走看看