Код: Выделить всё
List listResults = new();
var listIDs = new List
{
"ID1",
"ID2",
"ID3"
};
string baseURL = $"https://API_URL/id=";
var postTasks = listIDs.Select(p => client.GetStringAsync(baseURL + p));
var posts = await System.Threading.Tasks.Task.WhenAll(postTasks);
foreach (var postContent in posts)
{
listResults.Add(postContent);
Debug.WriteLine(postContent);
}
< /code>
Теперь я хочу сохранить строку ответа в списке 2 столбцов: 1 -й столбец - это ID, а 2 -й столбец - строка ответа. < /p>
Поэтому у меня есть эта модель ответа: < /p>
public class ItemResponseJsonModel
{
public string ID { get; set; }
public string ResponseJSON { get; set; }
}
Код: Выделить всё
List listResults = new();
var listIDs = new List
{
"ID1",
"ID2",
"ID3"
};
string baseURL = $"https://API_URL/id=";
var postTasks = listIDs.Select(p => client.GetStringAsync(baseURL + p));
var posts = await System.Threading.Tasks.Task.WhenAll(postTasks);
foreach (var postContent in posts)
{
listResults.Add(postContent); // This is where the error will say cannot convert string to ItemResponseJsonModel.
Debug.WriteLine(postContent);
}
Код: Выделить всё
listResults {
{ ID = "ID1", ResponseJSON = "ResponseJSON" },
{ ID = "ID2", ResponseJSON = "ResponseJSON" },
{ ID = "ID3", ResponseJSON = "ResponseJSON" },
}
< /code>
Как я могу это сделать? Могу ли я сохранить его в словаре < /code>? Тем не менее, я столкнулся с другой проблемой и, надеюсь, получу некоторую помощь здесь. Почему? Потому что результат иногда имеет несколько страниц, поэтому мне нужно сделать/while, чтобы проверить последнюю страницу, которая только как строка [] »
Task APIGetItemsByID(string ID)
{
int page = 1;
string? API_Key = "The-API-Key"
Task respJSON;
string respContent;
do
{
var client = new HttpClient();
string baseURL = $"https://API_URL/items?pageSize=1000&Page={page}&id=";
client.DefaultRequestHeaders.Add("Authorization", "Basic " + API_Key);
respJSON = client.GetStringAsync(baseURL + ID);
respContent = respJSON.Result;
page++;
} while (respContent != "[]" && page < 10);
return respJSON;
}
Код: Выделить всё
List listResults = new();
var listIDs = new List
{
"ID1",
"ID2",
"ID3"
};
var postTasks = listIDs
.Select(async p => new ItemResponseJsonModel { ID = p, ResponseJSON = await APIGetItemsByID(p) });
var posts = await System.Threading.Tasks.Task.WhenAll(postTasks);
foreach (var postContent in posts)
{
listResults.Add(postContent);
Debug.WriteLine(postContent);
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... -2-columns