首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在getOrders调用(eBay Trading API)中使用分页过滤器?

如何在getOrders调用(eBay Trading API)中使用分页过滤器?
EN

Stack Overflow用户
提问于 2015-07-08 04:37:01
回答 2查看 1.2K关注 0票数 0

我编写C#应用程序,它从易趣获得订单。

问题是我只能从getOrders.ApiResponse.OrderArray得到100个订单。

我有大约1000个订单。如何获得另外的900?换句话说,如何使用HasMoreOrders调用和Pagination.PageNumber遍历易趣订单?

EN

回答 2

Stack Overflow用户

发布于 2015-07-08 17:50:32

在第一个GetOrders调用本身中,您可以找到结果中项目和页面的总数

您应该遍历每个页面并使用不同的页码调用GetOrders应用程序接口调用

代码语言:javascript
复制
For(int index=0; index<Orders.Pages; index++)
{
// Build GetOrders Request with PageNumber - index

// Call GetOrders API with page number 

// Manipulate result
}
票数 3
EN

Stack Overflow用户

发布于 2015-07-09 11:20:43

响应本身包含当前页码和总页数。您将需要在每个页面上执行一个新请求。

看看我为获取每个页面的所有结果而编写的以下代码(这是使用Finding API实现的,但对所有其他eBay API都是一样的):

代码语言:javascript
复制
var response = GetResults(findingService, request, currentPageNumber);
if (response.ack == AckValue.Success)
{
    var result = response.searchResult;
    if (result != null && result.count > 0)
    {
        // TODO process result

        for (var i = response.paginationOutput.pageNumber; i < response.paginationOutput.totalPages; i++)
        {
            currentPageNumber += 1;

            response = GetResults(findingService, request, currentPageNumber);
            result = response.searchResult;

            // TODO process result
        }
    }
}

private FindCompletedItemsResponse GetResults(CustomFindingService service, FindCompletedItemsRequest request, int currentPageNumber)
{
    request.paginationInput = GetNextPage(currentPageNumber);
    return service.findCompletedItems(request);
}

private PageinationInput GetNextPage(int pageNumber)
{
    return new PaginationInput
    {
        entriesPerPageSpecified = true,
        entriesPerPage = 100,
        pageNumberSpecified = true,
        pageNumber = pageNumber  
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31278786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档