trycatch DioError的时候控制台会输出一些错误内容

来源:3-7 扩展hi_net添加对dio的支持

拾年磨一剑

2021-04-13


/// Dio适配器

class DioAdapter extends HiNetAdapter {

@override

Future<HiNetResponse<T>> send<T>(BaseRequest request) async {

var response, options = Options(headers: request.header);

var error;

try {

if (request.httpMethod() == HttpMethod.GET) {

response = await Dio().get(request.url(), options: options);

} else if (request.httpMethod() == HttpMethod.POST) {

response = await Dio()

.post(request.url(), data: request.params, options: options);

} else if (request.httpMethod() == HttpMethod.PUT) {

response = await Dio()

.put(request.url(), data: request.params, options: options);

} else if (request.httpMethod() == HttpMethod.DELETE) {

response = await Dio()

.delete(request.url(), data: request.params, options: options);

}

} on DioError catch (e) {

error = e;

response = e.response;

}

if (error != null) {

throw HiNetError(response?.statusCode ?? -1, error.toString(),

data: buildRes(response, request));

}

return buildRes(response, request);

}

  

/// 构建HiNetResponse

HiNetResponse buildRes(response, BaseRequest request) {

return HiNetResponse(

data: response.data,

request: request,

statusCode: response.statusCode,

statusMessage: response.statusMessage,

extra: response);

}

}


Future<dynamic> send<T>(BaseRequest request) async {

/// 使用Dio发送请求

HiNetAdapter adapter = DioAdapter();

return adapter.send(request);

}

多出一部分错误信息,且没办法捕捉到,dio版本是:dio: ^4.0.0

http://img.mukewang.com/szimg/6074e097080c6d1229860522.jpg

写回答

1回答

CrazyCodeBoy

2021-04-14

错误已经被DioAdapter中的

} on DioError catch (e) {

error = e;

response = e.response;

}

捕获了,然后被HiNet的  printLog(e);打印出来了。

0
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1722 学习 · 870 问题

查看课程