Flutter 基于dio网络请求封装

import 'package:dio/dio.dart';

import 'dart:convert';

class BaseRequest {

/*分页默认起始页*/

  static final intkStartIndex =1;

  /*分页默认每一页数量*/

  static final intkPageSize =10;

  /*请求成功*/

  static final intkCodeSuccess =0;

  /*请求地址*/

  static final StringkHttpHostName ="http://127.0.0.1:8080";

  /*登录*/

  static final StringkUrlAccountLogin =kHttpHostName +"/user/login";

  static requestWithUrl(String url, Map parameters, successBlock(int code, String message, Object data), errorBlock(error))async {

try {

Dio dio =new Dio();

      Response response =await dio.request(

url,

          queryParameters: parameters,

          options:Options(

method:"POST"

          )

);

      print("请求地址:" + url);

      print("请求参数:" + parameters.toString());

      print("返回参数:" + response.toString());

      Map map = json.decode(response.toString());

      int code = map["code"];

      String msg = map["msg"];

      Object data = map["data"];

      return successBlock(code,msg,data);

    }on DioErrorcatch (error) {

print("请求地址:" + url);

      print("请求参数:" + parameters.toString());

      print("请求报错:" + error.toString());

      return errorBlock(error);

    }

}

}

调用:


BaseRequest.requestWithUrl(BaseRequest.kUrlAccountLogin, {

"account":"18761661234",

  "password":"111111"

}, (int code, String message, Object data) {

if (code == BaseRequest.kCodeSuccess) {


  }else {


  }

}, (error) {


});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容