Размер GetFile от HttpClient.GetStreamAsync - PullRequest
0 голосов
/ 06 февраля 2019

Как получить размер файла, который я получаю с помощью моего HttpClient перед возвратом fileStreamResult

    public async Task<FileStreamResult> Index(string id)
    {
        var urlToDownloadFromService= _upDownService.Downloadables.Find(d => d.Name == id);

        HttpClient client = new HttpClient();
        Stream stream = await client.GetStreamAsync(new Uri(urlToDownloadFromService.UrlSource));
        var fileStreamResult =  new FileStreamResult(stream, "application/octet-stream");
        return fileStreamResult;
    }

stream.Length не работает, потому что ContentLengthReadStream не реализует метод

ОБНОВЛЕНИЕ

В рамках dotnetcore реализация HttpConnection получает информацию о длине от объекта response, например,

else if (response.Content.Headers.ContentLength != null)
{
     long contentLength = Response.Content.Headers.ContentLength.GetValueOrDefault();
.
.
.
.

     responseStream = new ContentLengthReadStream(this, (ulong)contentLength);

Github источник httpConnection

...