ioTelemetryPost function

TelemetryPost ioTelemetryPost({
  1. Duration timeout = const Duration(seconds: 15),
})

HttpClient 기반 TelemetryPost — 익명 집계 업로드(9.3). 관리 플레인으로 가는 유일한 쓰기 경로이고, 실패해도 화면의 번역은 영향을 받지 않는다.

Implementation

TelemetryPost ioTelemetryPost({Duration timeout = const Duration(seconds: 15)}) {
  return (String url, String body) async {
    final client = HttpClient();
    try {
      final request = await client.postUrl(Uri.parse(url));
      request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
      request.write(body);
      final response = await request.close().timeout(timeout);
      await response.drain<void>();
      return response.statusCode;
    } finally {
      client.close(force: true);
    }
  };
}