C# 如何循环HTTPClient请求以获取所有元素

C# 如何循环HTTPClient请求以获取所有元素,c#,azure-functions,C#,Azure Functions,早上好 在我的azure function v1应用程序上,我编写了一个框架来处理HTTPCLIENT请求/响应并连接到我们的api服务,我有一个方法来获取所有事务,参数为:pageNumber,pageSize,调用pageSize=100的method后,我能够获取前100个元素,但总元素数是1000,如果响应有更多的项或元素,如何循环请求以再次调用getTransaction 下面是获取事务的示例响应: { "_embedded":{ "testTransacti

早上好

在我的azure function v1应用程序上,我编写了一个框架来处理HTTPCLIENT请求/响应并连接到我们的api服务,我有一个方法来获取所有事务,参数为:pageNumber,pageSize,调用pageSize=100的method后,我能够获取前100个元素,但总元素数是1000,如果响应有更多的项或元素,如何循环请求以再次调用getTransaction

下面是获取事务的示例响应:

{  
   "_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);