diff --git a/lib/providers/collection_providers.dart b/lib/providers/collection_providers.dart index 091d3332..1816137a 100644 --- a/lib/providers/collection_providers.dart +++ b/lib/providers/collection_providers.dart @@ -1,4 +1,5 @@ import 'package:apidash_core/apidash_core.dart'; +//import 'package:apidash_core/services/no_ssl_http_service.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:apidash/consts.dart'; import 'providers.dart'; @@ -273,12 +274,21 @@ class CollectionStateNotifier sendingTime: DateTime.now(), ); state = map; - - (HttpResponse?, Duration?, String?)? responseRec = await request( + late (HttpResponse?, Duration?, String?)? responseRec; + if(!ref.watch(settingsProvider).isSSLDisabled){ + responseRec = await request( requestId, substitutedHttpRequestModel, defaultUriScheme: defaultUriScheme, ); + }else{ + responseRec = await noSSLrequest( + requestId, + substitutedHttpRequestModel, + defaultUriScheme: defaultUriScheme, + ); + + } late final RequestModel newRequestModel; if (responseRec.$1 == null) { diff --git a/lib/providers/settings_providers.dart b/lib/providers/settings_providers.dart index f6b4392f..0fb9ab7d 100644 --- a/lib/providers/settings_providers.dart +++ b/lib/providers/settings_providers.dart @@ -22,6 +22,7 @@ class ThemeStateNotifier extends StateNotifier { Future update({ bool? isDark, + bool? isSSLDisabled, bool? alwaysShowCollectionPaneScrollbar, Size? size, Offset? offset, @@ -35,6 +36,7 @@ class ThemeStateNotifier extends StateNotifier { }) async { state = state.copyWith( isDark: isDark, + isSSLDisabled: isSSLDisabled, alwaysShowCollectionPaneScrollbar: alwaysShowCollectionPaneScrollbar, size: size, offset: offset, diff --git a/lib/screens/settings_page.dart b/lib/screens/settings_page.dart index fd6a5e64..043f891b 100644 --- a/lib/screens/settings_page.dart +++ b/lib/screens/settings_page.dart @@ -43,10 +43,10 @@ class SettingsPage extends ConsumerWidget { hoverColor: kColorTransparent, title: const Text('Disabling SSL verification'), subtitle: Text( - 'Current selection: ${settings.isDark ? "Dark Mode" : "Light mode"}'), - value: settings.isDark, + 'Current selection: ${settings.isSSLDisabled ? "SSL Verification Disabled" : "SSL Verification Enabled"}'), + value: settings.isSSLDisabled, onChanged: (bool? value) { - ref.read(settingsProvider.notifier).update(isDark: value); + ref.read(settingsProvider.notifier).update(isSSLDisabled: value); }, ), SwitchListTile( diff --git a/packages/apidash_core/lib/services/no_ssl_http_service.dart b/packages/apidash_core/lib/services/no_ssl_http_service.dart index 08f90764..fa7af858 100644 --- a/packages/apidash_core/lib/services/no_ssl_http_service.dart +++ b/packages/apidash_core/lib/services/no_ssl_http_service.dart @@ -8,8 +8,9 @@ import '../consts.dart'; import '../models/models.dart'; import '../utils/utils.dart'; import 'http_client_manager.dart'; +import 'http_service.dart'; + -typedef HttpResponse = http.Response; /// Create a custom `HttpClient` with SSL verification disabled. http.Client createHttpClientWithNoSSL() { @@ -19,7 +20,7 @@ http.Client createHttpClientWithNoSSL() { return IOClient(ioClient); } -Future<(HttpResponse?, Duration?, String?)> request( +Future<(HttpResponse?, Duration?, String?)> noSSLrequest( String requestId, HttpRequestModel requestModel, { SupportedUriSchemes defaultUriScheme = kDefaultUriScheme, diff --git a/packages/apidash_core/lib/services/services.dart b/packages/apidash_core/lib/services/services.dart index d155e9c7..fc2ca6e7 100644 --- a/packages/apidash_core/lib/services/services.dart +++ b/packages/apidash_core/lib/services/services.dart @@ -1,2 +1,3 @@ export 'http_client_manager.dart'; export 'http_service.dart'; +export 'no_ssl_http_service.dart';