|
|
@@ -1,105 +0,0 @@
|
|
|
-import 'package:dio/dio.dart';
|
|
|
-import 'api.dart';
|
|
|
-import 'package:shared_preferences/shared_preferences.dart';
|
|
|
-
|
|
|
-class NetUtil {
|
|
|
- static const String GET = "get";
|
|
|
- static const String POST = "post";
|
|
|
-
|
|
|
- //get请求
|
|
|
- static void get(String url, Function callBack,
|
|
|
- {Map<String, dynamic> params, Function errorCallBack}) async {
|
|
|
- if (!url.startsWith("http")) {
|
|
|
- url = domain + url;
|
|
|
- }
|
|
|
-
|
|
|
- _request(url, callBack,
|
|
|
- method: GET, params: params, errorCallBack: errorCallBack);
|
|
|
- }
|
|
|
-
|
|
|
- //post请求
|
|
|
- static void post(String url, Function callBack,
|
|
|
- {Map<String, dynamic> params, Function errorCallBack}) async {
|
|
|
- print('**************');
|
|
|
- if (!url.startsWith("http")) {
|
|
|
- url = domain + url;
|
|
|
- }
|
|
|
- _request(url, callBack,
|
|
|
- method: POST, params: params, errorCallBack: errorCallBack);
|
|
|
- }
|
|
|
-
|
|
|
- //具体的还是要看返回数据的基本结构
|
|
|
- //公共代码部分
|
|
|
- static void _request(String url, Function callBack,
|
|
|
- {String method,
|
|
|
- Map<String, dynamic> params,
|
|
|
- Function errorCallBack}) async {
|
|
|
- print("<net> url :<" + method + ">" + url);
|
|
|
-
|
|
|
- if (params != null && params.isNotEmpty) {
|
|
|
- print("<net> params :" + params.toString());
|
|
|
- }
|
|
|
-
|
|
|
- String errorMsg = "";
|
|
|
- int statusCode;
|
|
|
-
|
|
|
- final prefs = await SharedPreferences.getInstance();
|
|
|
- String _electricContest = prefs.getString('token') != null
|
|
|
- ? prefs.getString('token')
|
|
|
- : '';
|
|
|
- try {
|
|
|
- Response response;
|
|
|
- if (method == GET) {
|
|
|
- //组合GET请求的参数
|
|
|
- if (params != null && params.isNotEmpty) {
|
|
|
- StringBuffer sb = new StringBuffer("?");
|
|
|
- params.forEach((key, value) {
|
|
|
- sb.write("$key" + "=" + "$value" + "&");
|
|
|
- });
|
|
|
- String paramStr = sb.toString();
|
|
|
- paramStr = paramStr.substring(0, paramStr.length - 1);
|
|
|
- url += paramStr;
|
|
|
- }
|
|
|
- response = await Dio()
|
|
|
- .get(url, options: Options(headers: {"token": _electricContest}));
|
|
|
- } else {
|
|
|
- if (params != null && params.isNotEmpty) {
|
|
|
- FormData _formData = FormData.from(params);
|
|
|
- response = await Dio().post(url,
|
|
|
- data: _formData,
|
|
|
- options: Options(headers: {"token": _electricContest}));
|
|
|
- } else {
|
|
|
- response = await Dio().post(url,
|
|
|
- options: Options(headers: {"token": _electricContest}));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- statusCode = response.statusCode;
|
|
|
-
|
|
|
- print(response);
|
|
|
- //打印结果
|
|
|
-
|
|
|
- //处理错误部分
|
|
|
- if (statusCode < 0) {
|
|
|
- errorMsg = "网络请求错误,状态码:" + statusCode.toString();
|
|
|
- _handError(errorCallBack, errorMsg);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (callBack != null) {
|
|
|
- callBack(response.data);
|
|
|
- print("<net> response data:" + response.data);
|
|
|
- }
|
|
|
- } catch (exception) {
|
|
|
- _handError(errorCallBack, exception.toString());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //处理异常
|
|
|
- static void _handError(Function errorCallback, String errorMsg) {
|
|
|
- if (errorCallback != null) {
|
|
|
- errorCallback(errorMsg);
|
|
|
- }
|
|
|
- print("<net> errorMsg :" + errorMsg);
|
|
|
- }
|
|
|
-}
|