A customized dart:io
HttpClient implementation, to work around the "Hostname mismatch" issue
when accessing URIs with an IP address (DNS over HTTP for example).
Most of the source code is extracted from the
dart:io package, yet modified to leverage the SecureSocket.secure method to specify the host name used during SSL handshake.
Get an IP address of the 'pub.dev' site:
ping pub.dev PING pub.dev (18.104.22.168) 56(84) bytes of data. 64 bytes from any-in-2615.1e100.net (22.214.171.124): icmp_seq=1 ttl=112 time=88.7 ms
Or using a dart package like dns
Access it using
final client = IoHttpClient(); final req = await client.openUrl('get', Uri.parse('https://126.96.36.199'), 'pub.dev'); final resp = await req.close();