import 'dart:io'; import 'package:dio/dio.dart'; import 'package:dio/io.dart'; import 'package:flutter/services.dart'; Future createEspHttpClient({String token = ""}) async { Dio dio = Dio(); final certData = await rootBundle.load("assets/certificates/rootCA.crt"); final certBytes = certData.buffer.asUint8List(); dio.httpClientAdapter = IOHttpClientAdapter( createHttpClient: () { SecurityContext securityContext = SecurityContext.defaultContext; securityContext.setTrustedCertificatesBytes(certBytes); return HttpClient(context: securityContext); } ); if (token.isNotEmpty) { dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options, RequestInterceptorHandler handler) { options.headers.addAll({ "Authorization": "Bearer $token" }); return handler.next(options); })); } return dio; }