fix: dio timeout don't throw exception (#133)

This commit is contained in:
Li Wei authored and GitHub committed 2023-07-03 18:52:17 +08:00
1 parent 32061200a5
commit c3b28c7034
3 files changed
+12 -5

No files matched your search

+9 -2
View File
@@ -34,6 +34,7 @@ class _Client {
}
dio.options.baseUrl = baseUrl;
dio.options.contentType = Headers.jsonContentType;
dio.options.sendTimeout = const Duration(seconds: 5);
dio.options.connectTimeout = const Duration(seconds: 5);
dio.options.receiveTimeout = const Duration(seconds: 60);
dio.interceptors.add(InterceptorsWrapper(onRequest: (options, handler) {
@@ -46,7 +47,8 @@ class _Client {
_instance!.dio = dio;
if (isUnixSocket) {
(_instance!.dio.httpClientAdapter as IOHttpClientAdapter)
.onHttpClientCreate = (client) {
.createHttpClient = () {
final client = HttpClient();
client.connectionFactory =
(Uri uri, String? proxyHost, int? proxyPort) {
return Socket.startConnect(
@@ -79,7 +81,12 @@ Future<T> _parse<T>(
} else {
throw Exception(result);
}
} on DioError catch (e) {
} on DioException catch (e) {
if (e.type == DioExceptionType.sendTimeout ||
e.type == DioExceptionType.receiveTimeout ||
e.type == DioExceptionType.connectionTimeout) {
throw Exception(Result(code: 1000, msg: "request timeout"));
}
throw Exception(Result(code: 1000, msg: e.message));
}
}
+2 -2
View File
@@ -237,10 +237,10 @@ packages:
dependency: "direct main"
description:
name: dio
sha256: "0894a098594263fe1caaba3520e3016d8a855caeb010a882273189cca10f11e9"
sha256: a9d76e72985d7087eb7c5e7903224ae52b337131518d127c554b9405936752b8
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.1"
version: "5.2.1+1"
fake_async:
dependency: transitive
description:
+1 -1
View File
@@ -40,7 +40,7 @@ dependencies:
styled_widget: ^0.4.0+3
context_menus: ^1.0.2
json_annotation: ^4.6.0
dio: ^5.1.1
dio: ^5.2.1
path_provider: ^2.0.11
file_picker: ^5.2.5
macos_secure_bookmarks: ^0.2.1