Попытка передать большой список объектов, сериализованных как json объекты, в REST API порциями - PullRequest
0 голосов
/ 15 апреля 2020

действительно изо всех сил здесь, чтобы сделать выше. У меня есть список объектов, которые я 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
        }
...