действительно изо всех сил здесь, чтобы сделать выше. У меня есть список объектов, которые я json сериализую, я получаю байты из этого и StreamWriter их в MemoryStream Затем с помощью StreamContent PostAsyn c это REST API
Проблема в том, что нет данных, поступающих через API
Код консольного приложения:
MemoryStream memoryStream = new MemoryStream();
StreamWriter sw = new StreamWriter(memoryStream);
//input is List<PricesRules>
var bytes = new UnicodeEncoding().GetBytes(JsonConvert.SerializeObject(input, Formatting.None).Trim());
sw.Write(bytes);
memoryStream.Position = 0;
memoryStream.SetLength(bytes.LongLength);
StreamContent streamContent = new StreamContent(memoryStream, bytes.Length);
var task = _client.PostAsync(endPoint, streamContent);
Task.WaitAll(task);
HttpResponseMessage response = task.Result;
response.Headers.TransferEncodingChunked = true;
if (response.IsSuccessStatusCode)
{//Do somthing}
Код API:
[HttpPost("update")]
public void Update()
{
try
{
var memoryStream = new MemoryStream();
HttpContext.Request.Body.CopyToAsync(memoryStream);
// reset position after CopyTo
memoryStream.Seek(0, SeekOrigin.Begin);
var result = new StreamReader(memoryStream, Encoding.Unicode, false, 3072).ReadToEndAsync().Result; //This is always empty
}