Commit bb8eff15 authored by “Icebear”'s avatar “Icebear”

添加请求拦截器

parent fcd57b20
...@@ -16,8 +16,35 @@ class HttpManager { ...@@ -16,8 +16,35 @@ class HttpManager {
///通用全局单例,第一次使用时初始化 ///通用全局单例,第一次使用时初始化
HttpManager._internal({String baseUrl}) { HttpManager._internal({String baseUrl}) {
if (null == _dio) { if (null == _dio) {
///connectTimeout连接超时时长
///receiveTimeout响应流上前后两次接受到数据的间隔,单位为毫秒。如果两次间隔超过[receiveTimeout],[Dio] 将会抛出一个[DioErrorType.RECEIVE_TIMEOUT]的异常.注意: 这并不是接收数据的总时限
///sendTimeout请求超时时长
///如果返回数据是json(content-type),dio默认会自动将数据转为json,
///
_dio = new Dio(new BaseOptions( _dio = new Dio(new BaseOptions(
baseUrl: UrlPath.baseUrl, connectTimeout: 15000)); baseUrl: UrlPath.baseUrl, connectTimeout: 15000,sendTimeout: 15000));
// 添加拦截器
_dio.interceptors.add(InterceptorsWrapper(onRequest:
(RequestOptions options, RequestInterceptorHandler hander) {
print("\n================== 请求数据 ==========================");
print("url = ${options.uri.toString()}");
print("headers = ${options.headers}");
print("params = ${options.data}");
hander.next(options);
}, onResponse: (Response response, ResponseInterceptorHandler handler) {
print("\n================== 响应数据 ==========================");
print("code = ${response.statusCode}");
print("data = ${response.data}");
print("\n");
handler.next(response);
}, onError: (DioError e, ErrorInterceptorHandler handler) {
print("\n================== 错误响应数据 ======================");
print("type = ${e.type}");
print("message = ${e.message}");
print("stackTrace = ${e.stackTrace}");
print("\n");
handler.next(e);
}));
} }
} }
...@@ -73,7 +100,7 @@ class HttpManager { ...@@ -73,7 +100,7 @@ class HttpManager {
map[UserModel.getModel().header] = UserModel.getModel().tokenHead + UserModel.getModel().token; map[UserModel.getModel().header] = UserModel.getModel().tokenHead + UserModel.getModel().token;
} }
Response response = await _dio.request(url, Response response = await _dio.request(url,
queryParameters: parameters, data: formdata, options: new Options(method: method,headers: map)); queryParameters: parameters, data: formdata, options: new Options(method: method,headers: map,responseType: ResponseType.plain));
Map<String, dynamic> result = json.decode(response.toString()); Map<String, dynamic> result = json.decode(response.toString());
BaseHttpModel httpModel = BaseHttpModel.fromJson(result); BaseHttpModel httpModel = BaseHttpModel.fromJson(result);
if (httpModel.isSuccess()) { if (httpModel.isSuccess()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment