flutter 网络框架Dio的要注意的提交方式以及bean文件的生成

作为flutter网络请求框架的翘楚------Dio(https://pub.dev/packages/dio),插件的添加、使用,前面链接很详细。在这里说下我想记录下来的某某…

  1. 添加Header
    添加Header有两种情况
// 设置全局Header
   dio.options.baseUrl = Api.BASE_URL;
    dio.options.connectTimeout = 5 * 1000;
    dio.options.sendTimeout = 5 * 1000;
    dio.options.receiveTimeout = 3 * 1000;
   dio.options.headers = {HttpHeaders.acceptHeader:"application/json;charset=UTF-8"};

//    Map<String, dynamic> headers = new Map();
//    headers['Content-Type'] = "application/json;charset=UTF-8";
//    dio.options.headers = headers;
  // 设置单个Header
   static Map<String, dynamic> getHeader(){
    Map<String, dynamic> headers = new Map();
    headers['Content-Type'] = "application/json;charset=UTF-8";
  return headers;
  }
  
  static Future<Response> getCcTkoken(){
    return dio.get(GET_TOKEN,options: Options(headers: getHeader()));
  }

注意:单个设置的Header覆盖不了全局的Header,意思是说会出现两个Header类型

  1. 表单提交

 static Map<String, dynamic> getLoginHeader(){
    Map<String, dynamic> headers = new Map();
    headers['Content-Type'] = "application/x-www-form-urlencoded";
  return headers;
  }

 static Future<Response> login(String username, String passwd,String ccten) {

    return dio.post(LOGIN_PATH, data: {
      "username": username,
      "password": passwd,
       "ccten": ccten,
    },
  //在这设置contentType类型,系统会主动把这个请求设置为表单提交
    options: Options(headers: getLoginHeader(),contentType: ContentType.parse("application/x-www-form-urlencoded"))
    );}
  1. 生成请求对应的Bean文件
    在这里插入图片描述
    首先引入依赖:json_serializable: ^3.0.0 ; build_runner: ^1.6.1 ;json_annotation: ^2.4.0;然后打开大佬的工具(https://caijinglong.github.io/json2dart/index_ch.html
    在这里插入图片描述
    把生成的dart文件放到目录里后,如果用的是Android studio 直接打开底部导航栏Terminal,输入
flutter packages pub run build_runner build

如果用的是其他软件,可以在工程根目录下按住shift+鼠标右键,选择打开powerShell窗口,输入上面命令,即可生成对应的X.g.dart文件。
注意:如果上面依赖没依赖进去,注定会报错。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章