1

我只得到 100 个结果。代码摘录:

FindingServicePortTypeClient client = FindingServiceClientFactory.getServiceClient(config);

FindItemsByCategoryRequest req = new FindItemsByCategoryRequest();
req.categoryId = new string[] { "1249" };
req.sortOrder = SortOrderType.BestMatch;
req.sortOrderSpecified = true;
req.itemFilter = new ItemFilter[]
{
    new ItemFilter()
    {
        name = ItemFilterType.EndTimeFrom,
        value = new string[]
        {
            DateTime.Now.Add(TimeSpan.FromHours(1)).ToString("yyyy-MM-ddTHH:mm:ss")
        }
    }
};

PaginationInput pi = new PaginationInput();
pi.entriesPerPage = int.MaxValue;
pi.entriesPerPageSpecified = true;
req.paginationInput = pi;

FindItemsByCategoryResponse response = client.findItemsByCategory(req);

如您所见,我尝试使用int.MaxValue,但无济于事。不可能从一个类别中获取所有项目吗?

4

1 回答 1

3

那么首先 eBay 会将您的分页输入条目限制为每页 100 个,并且您在任何特定搜索中返回的总项目数为 10,000 个(请参阅http://developer.ebay.com/Devzone/finding/CallRef/findItemsByCategory.html#Request .paginationInput)。因此,无论是否合乎逻辑,这都行不通。想想如果您可以在一次调用中返回 100,000 多个项目的结果,他们将不得不处理巨大的服务器负载。

现在,您可能认为仍然有一个聪明的方法可以超越限制块并保持在量化的限制之下。但根据http://developer.ebay.com/Devzone/finding/CallRef/findItemsByCategory.html#Request.paginationInput.pageNumber(第一个链接下方的 2 个条目),您甚至无法访问第 100 页之后的结果。因此,在每页 100 个结果和 100 个页面上,您实际上只能获得前 10,000 个结果中的任何一个(重点是您不能从第 101 页开始,因为它根本被禁止)。同样,这可能是因为他们需要访问超过那个点的资源。这一定有点令人失望……

对此感到抱歉:/,但这是完整的故事。

于 2013-09-10T17:40:31.423 回答