如何处理多页REST回复

本文关键字:REST 回复 处理 何处理 | 更新日期: 2023-09-27 18:01:01

我有一个WP7 silverlight(技术可能相关,也可能不相关(应用程序,它为类似的数据调用多个(10个或更多(REST web服务,并将它们放在一个集合中。数据本身与问题无关。

当回复有多个页面时,我该如何处理REST服务。我的意思是,我所称的所有这些服务都用数据回复,但顶部写着"第1页,共11页"。所以我不得不一次又一次地用类似&page=1…&page=2…我发现为它编写一个自定义框架很痛苦,而且可能有点脆弱。基本上,我有一个线程,它最初访问所有服务,然后找出有多少页面。从那以后我不知道该怎么办。我不知道从那里派生线程的最佳方法。

有没有最好的实践,甚至可能是我可以遵循的框架工作?

如何处理多页REST回复

您应该使用简单的请求-在wp7上,它们是异步的,因此您必须执行以下操作:

  1. 获取页数,将其存储在TOTAL_NUM中,设置NUM=1
  2. 调用请求在PAGE上获取数据==NUM
  3. 当req返回时,解析它,如果NUM!=TOTAL_NUM然后转到第2页

类似这样的东西:

public void FetchData(int pageNum)
{
    Uri address = ...;
    var request = WebRequest.Create(address);
    // ...  init request
    request.BeginGetRequestStream(asyncResp => {
                                                    var response = (WebResponse) request.EndGetResponse(asyncRes);
                                                    ParseAndSave(response, pageNum);
                                                    NUM++;
                                                    if (NUM != TOTAL_NUM)
                                                        FetchData(NUM);
                                                }, null);                                                               
}   

请记住,我没有编译它或其他什么。。。这可能不是最好的方法,但应该以最小的努力工作:(