Flutter如何用调用RestFul API
Posted UniConnector
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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());
以上是关于Flutter如何用调用RestFul API的主要内容,如果未能解决你的问题,请参考以下文章