Передача byte[] между клиентом/сервером .NET 4.7.1 через RESTC#

Место общения программистов C#
Anonymous
Передача byte[] между клиентом/сервером .NET 4.7.1 через REST

Сообщение Anonymous »

У меня нет опыта работы с REST API. Я унаследовал клиент/сервер .NET 4.7.1 C#, и мне нужно добавить возможность передачи (больших) двоичных файлов. Я не могу использовать RestSharp.
На стороне клиента я продвинулся вот так:

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

HttpClient client = new HttpClient();
...
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(?); // TODO: What should I enter here?

using (var content = new MultipartFormDataContent())
{
var fileContent = new ByteArrayContent(bytes);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "My.dat"
};
content.Add(fileContent);
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
return response.Headers.Location;
}
Ошибка публикации:

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

Status Code: 500, ReasonPhrase: 'could not find expected boundary'
Я не женат на приведенной выше реализации (найденной в Интернете).
На стороне сервера, как мне извлечь байты из параметр запроса?

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

public async Task ReceiveFile(
HttpListenerRequest request,
...)
{
...
if (request.HasEntityBody)
{
// TODO: Save bytes to a file
}
...
}
Я ограничен обработчиком, который получает параметр HttpListenerRequest.

Подробнее здесь: https://stackoverflow.com/questions/787 ... r-via-rest

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