http2 static method

Future<HttpClient> http2(
  1. Uri address, {
  2. SecurityContext? securityContext,
  3. bool onBadCertificate(
    1. X509Certificate certificate
    )?,
  4. Duration? timeout,
})

Implementation

static Future<HttpClient> http2(
  Uri address, {
  io.SecurityContext? securityContext,
  bool Function(io.X509Certificate certificate)? onBadCertificate,
  Duration? timeout,
}) async {
  var useSSL = address.scheme == 'https';
  if (useSSL) {
    var secureSocket = await io.SecureSocket.connect(
      address.host,
      address.port,
      supportedProtocols: ['h2'],
      onBadCertificate: onBadCertificate,
      context: securityContext,
      timeout: timeout,
    );

    if (secureSocket.selectedProtocol != 'h2') {
      throw Exception('Host does not support http2.');
    }

    return _Http2Client(address, secureSocket);
  } else {
    var socket = await io.Socket.connect(
      address.host,
      address.port,
      timeout: timeout,
    );

    return _Http2Client(address, socket);
  }
}