Я пытаюсь загрузить файл, используя httpClient в качестве потока октетов
- Предоставляется следующая документация
- HTTP Verb => POST
- Content – Type => application / octet-stream
- Accept => application / json
- Авторизация => Носитель {токен доступа}
- x-file-name => Тестовый файл.pdf
- x-convert-document (необязательно) => true
- x-source => источник (может быть любой строкой)
- Тело запроса => file (двоичный поток)
Примечание: в моем коде ниже заголовки Accept и Bearer и их значения уже присутствуют в клиенте, который я загружаю с помощью "await GetRestClientAsync ()"
Я ожидаю ответ, но пока я ничего не получаю, приложение просто останавливается, что я тут не так делаю?
Ps: Другие сообщения, запросы к этому API нормально работают с тем же клиентом, который я здесь использую, так что, скорее всего, я что-то напутал с MultiPartFormDataContent
protected async Task<TResponse> ExecutePostAsBinaryCustomHeadersAsync<TResponse>(Uri apiUri, Stream fileStream, string fileName ,bool returnDefaultObjectForInternalServerError = false)
{
using (var formData = new MultipartFormDataContent())
{
formData.Add(new StringContent(fileName), "x-file-name");
formData.Add(new StringContent("true"), "x-convert-document");
formData.Add(new StringContent("Agion"), "x-source");
formData.Add(new StringContent("application/octet-stream"), "Content-Type");
using (var client = await GetRestClientAsync())
{
StreamContent content = new StreamContent(fileStream);
formData.Add(content, "file", fileName);
using (var response = await client.PostAsync(apiUri, formData))
{
return await DeserializeResponseAsync<TResponse>(response, returnDefaultObjectForInternalServerError);
}
}
}
}