Получите поток октетов с помощью ExecuteAsync из RestSharp без заголовковC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получите поток октетов с помощью ExecuteAsync из RestSharp без заголовков

Сообщение Anonymous »

Я использую RestSharp версии 111.2.0.
Все наши запросы строятся следующим образом:

Код: Выделить всё

internal async Task GetFileAsync(int documentId)
{
RestRequest request = new RestRequest($"{_apiPath}/document-files/{documentId}", Method.Get);
request.AddHeader("Accept", "application/octet-stream");

RestResponse response = await mRestClient.ExecuteAsync(request).ConfigureAwait(true);
ErrorHandling(response);

return response.RawBytes;
}
Итак, очень простой подход. У нас написан обработчик, который создает лог-файлы и так далее в методе ErrorHandling. Когда мы загружаем файл таким образом, он «искажается» заголовками Octet-stream. Эти заголовки находятся внутри свойств Content и RawBytes.
Тогда файл выглядит следующим образом:

Код: Выделить всё

--69d36367-8ab0-4b7c-a718-668f7542e836
Content-Type: application/octet-stream
Content-Disposition: form-data; name=""; filename="MG Test2.pdf"

%PDF-1.7
...
%%EOF

--69d36367-8ab0-4b7c-a718-668f7542e836--
Но начало реального файла — это %PDF-1.7, а %%EOF должен быть концом файла.
Естественно, я мог бы вырезать его вручную.. . но это не очень хороший подход, не так ли? В сети есть несколько примеров загрузки файлов, например, с использованием DownloadDataAsync. Но это не возвращает ответ, а само выдает ошибки и потребует совершенно новой обработки, попыток перехвата и т. д.
Кстати... если я не добавлю заголовок вручную, я получите ошибку 406. Значит, это необходимо.
У кого-нибудь есть идеи, какой может быть лучший способ получить файл, чем самому вырезать его из ответа?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ut-headers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»