getContent method
serverName
The server name from the mxc://
URI (the authoritory component)
mediaId
The media ID from the mxc://
URI (the path component)
allowRemote
Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided.
Implementation
Future<FileResponse> getContent(String serverName, String mediaId,
{bool? allowRemote}) async {
final requestUri = Uri(
path:
'_api/media/v3/download/${Uri.encodeComponent(serverName)}/${Uri.encodeComponent(mediaId)}',
queryParameters: {
if (allowRemote != null) 'allow_remote': allowRemote.toString(),
});
final request = Request('GET', baseUri!.resolveUri(requestUri));
request.headers['authorization'] = 'Bearer ${bearerToken!}';
final response = await httpClient.send(request);
final responseBody = await response.stream.toBytes();
if (response.statusCode != 200) unexpectedResponse(response, responseBody);
return FileResponse(
contentType: response.headers['content-type'], data: responseBody);
}