FLUTTER ECOSYSTEM

dart-archive/http2

Eine HTTP/2-Implementierung für Dart.

Projektcover von http2
Stars
150
Forks
45
Letzter Push (UTC)
21.10.2024
Projektstatus
Archiviert
Dart Archive GitHub avatar
GITHUB Organization

Dart Archive ↗

Legacy projects kept around for posterity – See github.com/dart-lang for current work

SprachenDart

Verwendete Abhängigkeiten

Abhängigkeiten 4 Einträge
  • build_runnerEntwicklung^2.3.0
  • dart_flutter_team_lintsEntwicklung^2.0.0
  • mockitoEntwicklung^5.3.2
  • testEntwicklung^1.21.4

Original-README

Englischer Projektschnappschuss. Aktuelle Inhalte auf GitHub.

Projekt-README ein-/ausklappen

[!IMPORTANT]
This repo has moved to https://github.com/dart-lang/http/tree/master/pkgs/http2

Dart CI pub package package publisher

This library provides an http/2 interface on top of a bidirectional stream of bytes.

Usage

Here is a minimal example of connecting to a http/2 capable server, requesting a resource and iterating over the response.

import 'dart:convert';
import 'dart:io';

import 'package:http2/http2.dart';

Future<void> main() async {
  final uri = Uri.parse('https://www.google.com/');

  final transport = ClientTransportConnection.viaSocket(
    await SecureSocket.connect(
      uri.host,
      uri.port,
      supportedProtocols: ['h2'],
    ),
  );

  final stream = transport.makeRequest(
    [
      Header.ascii(':method', 'GET'),
      Header.ascii(':path', uri.path),
      Header.ascii(':scheme', uri.scheme),
      Header.ascii(':authority', uri.host),
    ],
    endStream: true,
  );

  await for (var message in stream.incomingMessages) {
    if (message is HeadersStreamMessage) {
      for (var header in message.headers) {
        final name = utf8.decode(header.name);
        final value = utf8.decode(header.value);
        print('Header: $name: $value');
      }
    } else if (message is DataStreamMessage) {
      // Use [message.bytes] (but respect 'content-encoding' header)
    }
  }
  await transport.finish();
}

An example with better error handling is available here.

See the API docs for more details.

Features and bugs

Please file feature requests and bugs at the issue tracker.