Search packages, repositories and app categories

GitHub repositorydart-archive/http2

http2

A HTTP/2 implementation for dart.

http2 project cover
Stars
150
Forks
45
Last push (UTC)
Oct 21, 2024
Project status
Archived

Original README

English project snapshot. Visit GitHub for the latest content.

[!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.

Dart Archive GitHub avatar
GitHub author

Dart Archive ↗

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

LanguagesDart

Dependencies used

Dependency list 4 items

  • build_runnerDevelopment^2.3.0
  • dart_flutter_team_lintsDevelopment^2.0.0
  • mockitoDevelopment^5.3.2
  • testDevelopment^1.21.4

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗