Сессия захватывает только данные последнего объекта в списке - PullRequest
0 голосов
/ 16 февраля 2019

Session ["DeviceIDs"] имеет список, сохраненный с двумя идентификаторами.Метод Foreach передает каждый идентификатор веб-URL / идентификаторам устройств.Единственный идентификатор, который читается, это последний идентификатор.Как я могу передать все идентификаторы, хранящиеся в Session ["DeviceIDs"? Может ли это быть как-то связано с var response = await httpClient.SendAsync (request); ?? Заранее спасибо

    public async void PatchMethodAsync()
    {
        using (var httpClient = new HttpClient())
        {
            if (Session["DeviceIDs"] != null)
            {
                //Check all ids in Session
                foreach (var ids in Session["DeviceIDs"].ToString())
                {
                    //Pass each individual id from Session to device id in url
                    using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), "https://www.website.com/devices/" + Session["DeviceIDs"]))
                    {
                        request.Content = new StringContent("{\"enabled\": \"y\"}", Encoding.UTF8, "application/json");

                        var response = await httpClient.SendAsync(request);
                    }

                }
            }
            else
            {
                //Do something
            }
        }
    }

1 Ответ

0 голосов
/ 16 февраля 2019

Я считаю, что вы ищете что-то вроде этого

List<Task<ResponseObject>> tasks = new List<Task>();
foreach (var id in Session["DeviceIDs"].ToString())
{
    ...//create the request Message using id
    tasks.Add(httpClient.SendAsync(request));
}

var responses = await Task.WhenAll(tasks.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...