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文件。
注意:如果上面依賴沒依賴進去,註定會報錯。

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