dart-archive/http2
다트용 HTTP/2 구현.
- Stars
- 150
- Forks
- 45
- 최근 푸시(UTC)
- 2024. 10. 21.
- 프로젝트 상태
- 보관됨
언어Dart
사용 중인 의존성
의존성 목록 4 개
- build_runner개발 의존성
^2.3.0 - dart_flutter_team_lints개발 의존성
^2.0.0 - mockito개발 의존성
^5.3.2 - test개발 의존성
^1.21.4
원본 README
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
README 펼치기 / 접기
[!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.