C# 如何循环HTTPClient请求以获取所有元素
早上好 在我的azure function v1应用程序上,我编写了一个框架来处理HTTPCLIENT请求/响应并连接到我们的api服务,我有一个方法来获取所有事务,参数为:pageNumber,pageSize,调用pageSize=100的method后,我能够获取前100个元素,但总元素数是1000,如果响应有更多的项或元素,如何循环请求以再次调用getTransaction 下面是获取事务的示例响应:C# 如何循环HTTPClient请求以获取所有元素,c#,azure-functions,C#,Azure Functions,早上好 在我的azure function v1应用程序上,我编写了一个框架来处理HTTPCLIENT请求/响应并连接到我们的api服务,我有一个方法来获取所有事务,参数为:pageNumber,pageSize,调用pageSize=100的method后,我能够获取前100个元素,但总元素数是1000,如果响应有更多的项或元素,如何循环请求以再次调用getTransaction 下面是获取事务的示例响应: { "_embedded":{ "testTransacti
{
"_embedded":{
"testTransactions":[ ]
},
"_links":{ },
"page":{
"size":100,
"totalElements":1000,
"totalPages":10,
"number":0
}
}
谢谢您必须再次调用API服务,这意味着为它创建一个循环。为api的结果设置一个标志或索引,在该行当前返回的结束位置 例如
然后,当您必须再次请求api时,您必须传递当前行索引,以便获取另一批列表,这样您就不会再次从index=0开始。只是出于好奇,您认为您会怎么做?与从UWPHi@NicoTing加载ISupportIncrementalLoading的逻辑相同,如果你想让人们给出准确的答案,你应该发布一些代码
page:{
"size" : 100,
"totalElements" : 1000,
"currRow" : 10 //the end index of your list
}
int _pageNumber = 0;
do {
_response = await TransactionAsync(_pageNumber, 100);
if(_response != null && _response.saleTransactions != null && _response.page != null) {
_pageNumber = _response.page.number + 1;
foreach (var item in _response.saleTransactions) {
transactions.Add(item);
}
}
} while (_pageNumber <= _response.page.totalPages && transactions.Count() < _response.page.totalElements);