Все наши запросы строятся следующим образом:
Код: Выделить всё
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;
}
Тогда файл выглядит следующим образом:
Код: Выделить всё
--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--
Естественно, я мог бы вырезать его вручную.. . но это не очень хороший подход, не так ли? В сети есть несколько примеров загрузки файлов, например, с использованием DownloadDataAsync. Но это не возвращает ответ, а само выдает ошибки и потребует совершенно новой обработки, попыток перехвата и т. д.
Кстати... если я не добавлю заголовок вручную, я получите ошибку 406. Значит, это необходимо.
У кого-нибудь есть идеи, какой может быть лучший способ получить файл, чем самому вырезать его из ответа?
Подробнее здесь: https://stackoverflow.com/questions/786 ... ut-headers