makeRequest method
Implementation
Future<DohResponse> makeRequest(
{required String method, required Map<String, dynamic> request}) async {
final url = request['url'];
final headers = request['headers'];
final body = request['body'];
final dohProvider = request['dohProvider'];
final requestType =
method.replaceAll("make", "").replaceAll("request", "").toUpperCase();
// Run onRequest interceptors asynchronously
await Future.wait(interceptors.map((interceptor) => _runInterceptorIsolate(
method: 'onRequest',
interceptor: interceptor,
requestType: requestType,
url: url,
headers: headers,
body: body,
dohProvider: dohProvider,
)));
try {
final result = await methodChannel.invokeMethod(method, request);
final response = _returnResponse(result);
// Run onResponse interceptors asynchronously
await Future.wait(
interceptors.map((interceptor) => _runInterceptorIsolate(
method: 'onResponse',
interceptor: interceptor,
requestType: requestType,
url: url,
response: response,
)));
return response;
} catch (er) {
// Run onError interceptors asynchronously
await Future.wait(
interceptors.map((interceptor) => _runInterceptorIsolate(
method: 'onError',
interceptor: interceptor,
requestType: requestType,
url: url,
error: er,
)));
rethrow;
}
}