请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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


/// 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

https://img1.sycdn.imooc.com//szimg/6074e097080c6d1229860522.jpg

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2021-04-14 11:46:13

错误已经被DioAdapter中的

} on DioError catch (e) {

error = e;

response = e.response;

}

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号