in example/display_headers.dart [7:48]
void main(List<String> args) async {
if (args.length != 1) {
print('Usage: dart display_headers.dart <HTTPS_URI>');
exit(1);
}
var uriArg = args[0];
if (!uriArg.startsWith('https://')) {
print('URI must start with https://');
exit(1);
}
var uri = Uri.parse(uriArg);
var socket = await connect(uri);
// The default client settings will disable server pushes. We
// therefore do not need to deal with [stream.peerPushes].
var transport = ClientTransportConnection.viaSocket(socket);
var headers = [
Header.ascii(':method', 'GET'),
Header.ascii(':path', uri.path),
Header.ascii(':scheme', uri.scheme),
Header.ascii(':authority', uri.host),
];
var stream = transport.makeRequest(headers, endStream: true);
await for (var message in stream.incomingMessages) {
if (message is HeadersStreamMessage) {
for (var header in message.headers) {
var name = utf8.decode(header.name);
var value = utf8.decode(header.value);
print('$name: $value');
}
} else if (message is DataStreamMessage) {
// Use [message.bytes] (but respect 'content-encoding' header)
}
}
await transport.finish();
}