面试题答案
一键面试- 设置请求超时时间:
在Dio中,可以通过
Options
来设置请求超时时间。例如:import 'package:dio/dio.dart'; void main() async { Dio dio = Dio(); Options options = Options( // 设置连接超时时间为5秒 connectTimeout: 5000, // 设置接收数据超时时间为10秒 receiveTimeout: 10000 ); try { Response response = await dio.get('https://example.com', options: options); print(response.data); } catch (e) { print(e); } }
- 超时后返回的错误类型:
当请求超时时,Dio会抛出
DioError
类型的错误,其type
属性会被设置为DioErrorType.connectTimeout
(连接超时)或者DioErrorType.receiveTimeout
(接收超时)。 - 捕获并处理超时错误:
在代码中,可以通过
try - catch
块来捕获DioError
,并根据type
属性判断是否是超时错误,然后进行相应处理。例如:import 'package:dio/dio.dart'; void main() async { Dio dio = Dio(); Options options = Options( connectTimeout: 1000, receiveTimeout: 2000 ); try { Response response = await dio.get('https://example.com', options: options); print(response.data); } catch (e) { if (e is DioError) { if (e.type == DioErrorType.connectTimeout) { print('连接超时,请检查网络连接。'); } else if (e.type == DioErrorType.receiveTimeout) { print('接收数据超时,请稍后重试。'); } else { print('其他错误: ${e.message}'); } } else { print('未知错误: $e'); } } }