createProxiedHttpClient function

HttpClient createProxiedHttpClient({
  1. String? proxyUrl,
  2. SecurityContext? securityContext,
})

Create an HttpClient with proxy configuration.

Implementation

HttpClient createProxiedHttpClient({
  String? proxyUrl,
  SecurityContext? securityContext,
}) {
  final client = securityContext != null
      ? HttpClient(context: securityContext)
      : HttpClient();

  final proxy = proxyUrl ?? getProxyUrl();
  if (proxy != null && proxy.isNotEmpty) {
    client.findProxy = (uri) {
      if (shouldBypassProxy(uri.toString())) {
        return 'DIRECT';
      }
      final proxyUri = Uri.parse(proxy);
      return 'PROXY ${proxyUri.host}:${proxyUri.port}';
    };
  }

  return client;
}