http2
A HTTP/2 implementation for dart.
View on GitHub ↗Archived
- 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
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.
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.
- Search by repository name, owner or description, then narrow the results by topic.
- Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
- 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 ↗
- dart-archive/http2 · GitHub ↗
- GitHub Docs — Saving repositories with stars ↗
- Directory maintained by Ducafecat ↗