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());

     

  • 相关阅读:
    词汇表处理脚本
    jLowNote又,我为什么要说又,有bug
    于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了
    捉到Bug一只,jLowNote里的
    高产赛母猪
    我超喜欢Nimbus风格的!
    专注写记事本三十年
    秒秒钟食言
    别再打了,Java和Python,你们其实都是C
    电话本写完了,发个1.0吧
  • 原文地址:https://www.cnblogs.com/jerryqm/p/12875890.html
Copyright © 2011-2022 走看看