Есть ли разница в получении диапазона байтов в ByteRangeStreamContent и вырезании байтов непосредственно из массива байтов
Мне интересно, есть ли разница в получении содержимого диапазона байтов в ByteRangeStreamContent
и получение диапазона байтов напрямую из массива байтов
Итак, в основном я хочу спросить, есть ли разница в двух нижеприведенных кодах с точки зрения результата, который получатель получит как response
byte[] bytes = firmwareFile.Content;;
var stream = new MemoryStream(bytes);
var content = new ByteRangeStreamContent(stream, Request.Headers.Range, contentType);
var response = new HttpResponseMessage
{
Content = content
};
result.StatusCode = HttpStatusCode.PartialContent;
а также
if (Request.Headers.Range != null)
{
var range = Request.Headers.Range.Ranges.OfType<RangeItemHeaderValue>().First();
if(range.From.HasValue && range.To.HasValue)
{
var from = (int)range.From.Value;
var to = (int)range.To.Value;
bytes = firmwareFile.Content.Skip(from).Take(to - from).ToArray();
}
}
var stream = new MemoryStream(bytes);
var content = new ByteArrayContent(stream.ToArray());
var response = new HttpResponseMessage
{
Content = content
};
response.Content.Headers.ContentType = contentType;
result.StatusCode = HttpStatusCode.PartialContent;
Кроме того, правильна ли вторая версия? И могу ли я использовать это