io_http

Pub Check Status BSD

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.

Usage

Get an IP address of the 'pub.dev' site:

ping pub.dev
PING pub.dev (216.239.38.21) 56(84) bytes of data.
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=1 ttl=112 time=88.7 ms

Or using a dart package like dns

Access it using dio:

final client = IoHttpClient();
final req = await client.openUrl('get', Uri.parse('https://216.239.38.21'), 'pub.dev');
final resp = await req.close();

Libraries

io_http