autodetect static method
Future<HttpClient>
autodetect(
- Uri address, {
- SecurityContext? securityContext,
- bool onBadCertificate(
- X509Certificate certificate
- Duration? timeout,
Implementation
static Future<HttpClient> autodetect(
Uri address, {
io.SecurityContext? securityContext,
bool Function(io.X509Certificate certificate)? onBadCertificate,
Duration? timeout,
}) async {
var useSSL = address.scheme == 'https';
if (useSSL) {
try {
var secureSocket = await io.SecureSocket.connect(
address.host,
address.port,
supportedProtocols: ['h2'],
onBadCertificate: onBadCertificate,
context: securityContext,
timeout: timeout,
);
if (secureSocket.selectedProtocol != 'h2') {
return _Http11Client(address, securityContext);
}
return _Http2Client(address, secureSocket);
} catch (e) {
return _Http11Client(address, securityContext);
}
} else {
return _Http11Client(address, securityContext);
}
}