会话只捕获列表中最后一个对象的数据
Session only captures the data of the last object within the list
Session["DeviceIDs"] 有一个存储有两个 ID 的列表。 Foreach 方法会将每个 id 传递给网络 url/deviceIDs。唯一被读取的 id 是最后一个 id。我如何传递存储在 Session["DeviceIDs] 中的所有 ID?这可能与 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
}
}
}
我相信您正在寻找这样的东西
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());
Session["DeviceIDs"] 有一个存储有两个 ID 的列表。 Foreach 方法会将每个 id 传递给网络 url/deviceIDs。唯一被读取的 id 是最后一个 id。我如何传递存储在 Session["DeviceIDs] 中的所有 ID?这可能与 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
}
}
}
我相信您正在寻找这样的东西
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());