getDataFromUrl static method

Future<String?> getDataFromUrl(
  1. String url, [
  2. Map<String, String?>? headers,
  3. String? sig
])

Request data from given uri along with headers. May return null if resource is not available or on error.

Implementation

static Future<String?> getDataFromUrl(String url,
    [Map<String, String?>? headers, String? sig]) async {
  try {
    var uri = Uri.parse(url);
    if (sig != null) {
      final lastSegment = uri.pathSegments.last;
      final computedSig =
          BetterPlayerClearKeyUtils.computeHmacSha256Base64(sig, lastSegment);
      uri = uri.replace(queryParameters: {"sig": computedSig});
    }
    final request = await _httpClient.getUrl(uri);
    if (headers != null) {
      headers.forEach((name, value) => request.headers.add(name, value!));
    }

    final response = await request.close();
    var data = "";
    await response.transform(const Utf8Decoder()).listen((content) {
      data += content.toString();
    }).asFuture<String?>();

    return data;
  } on Exception catch (exception) {
    BetterPlayerUtils.log("GetDataFromUrl failed: $exception");
    return null;
  }
}