Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AmazonWeb服务通过结果集分页_C#_Amazon Web Services - Fatal编程技术网

C# AmazonWeb服务通过结果集分页

C# AmazonWeb服务通过结果集分页,c#,amazon-web-services,C#,Amazon Web Services,我正在看报纸 有一个选项可以使用标记页来翻页结果集,但在中没有标记页选项。我遇到的问题是Itemlookup只返回10个结果。如何在不显示tagpage选项的情况下浏览结果集? 非常感谢你的帮助 我的目标是将ISBN传递给亚马逊,并获得该书的所有售价。看起来我只能收到10个随机价格。如果他们将我的返回限制为10个价格,而不允许我进行某种形式的分页,我如何获得所有价格根据ItemId文档,每个请求最多只能指定10个唯一的ItemId。因此,看起来每个请求的阈值为每个ItemLookupReques

我正在看报纸

有一个选项可以使用标记页来翻页结果集,但在中没有标记页选项。我遇到的问题是Itemlookup只返回10个结果。如何在不显示tagpage选项的情况下浏览结果集?

非常感谢你的帮助


我的目标是将ISBN传递给亚马逊,并获得该书的所有售价。看起来我只能收到10个随机价格。如果他们将我的返回限制为10个价格,而不允许我进行某种形式的分页,我如何获得所有价格根据ItemId文档,每个请求最多只能指定10个唯一的ItemId。因此,看起来每个请求的阈值为每个ItemLookupRequest请求返回最多10个项目。我已经有一段时间没有使用这个API了,但当我使用它时,他们极力要求你缓存产品信息,除了尽可能积极地定价。这可能是他们通过API设计强制客户机缓存的方式之一

ItemId
唯一标识项目的一个或多个(最多十个)正整数。数字的含义由IdType指定。也就是说,如果IdType是ASIN,则ItemId值是ASIN。如果ItemId是ASIN,则无法在请求中指定搜索索引

类型:字符串

默认值:无


约束条件:必须是有效的项目ID。对于多个ID,请使用逗号分隔的列表,最多包含十个ID。

亚马逊web服务代码可能是一个难以导航的问题。在查看您发布到的链接时,您是否尝试过此链接(从请求参数中提取)


RelatedItemPage:此可选参数仅在使用RelatedItems响应组时有效。每个ItemLookup请求最多可以返回十个相关项。RelatedItemPage值指定要返回的十个相关项的集合。例如,值2返回第二组十个相关项

您可以使用ItemPage参数迭代ItemSearchResult的页面,并使用“Sort”参数对项进行排序(而不是“random”;这实际上是最“相关的”)

这是我刚刚拼凑的一个小玩意儿,未经测试,我以前没有做过,但应该可以用。您需要做的错误处理要比我在这里做的多得多,还需要满足AWS对您施加的每秒最大请求数限制:

    private List<Item> testAWS() {

        var s = new AWSECommerceServicePortTypeClient("AWSECommerceServicePortUK");
        s.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(AWSAccessKey, AWSSecureKeyID));

        var totalPages = 10; // Default value - changes on first iteration
        var books = new List<Item>();

        for(var i = 1; i < totalPages; i++) {
            var req = new ItemSearchRequest {
                SearchIndex = "Books",
                ItemPage = i.ToString(CultureInfo.InvariantCulture),
                Keywords = "Your ISBN", // There may be a better way to search for an ISBN - I haven't yet needed to
                Sort = "price", // Sort depends on which endpoint you are searching.
                Availability = ItemSearchRequestAvailability.Available, // Gets available products (mainly)
                ResponseGroup = new[] { "Small" } // Change for more details
            };

            var search = new ItemSearch {
                AWSAccessKeyId = AWSAccessKey,
                AssociateTag = AWSAssociateTag,
                Request = new[] { req }
            };

            var response = s.ItemSearch(search);
            // Store response in a list or something, which you can reorder as you want
            books.AddRange(response.Items[0].Item);

            totalPages = int.Parse(response.Items[0].TotalPages ?? "0");
        }

        // return your books, ordered by price ascending
        return books.OrderBy(b => b.Offers.Offer[0].OfferListing[0].Price.Amount).ToList();

    }
私有列表testAWS(){
var s=新的AWSECommerceServicePortTypeClient(“AWSECommerceServicePortUK”);
s、 添加(新的AmazonSigningEndpointBehavior(AWSAccessKey,AWSSecureKeyID));
var totalPages=10;//默认值-第一次迭代时的更改
var books=新列表();
对于(变量i=1;ib.Offers.Offer[0].offerList[0].Price.Amount.ToList();
}

我的目标是将ISBN传递给亚马逊,并获得该书的所有售价。看起来我只能收到10个随机价格。如果他们将我的返回限制为10个价格,而不允许我进行某种形式的分页,那么我如何获得所有的价格呢?这有点像是旁注,而你只能返回10个结果,我相信你一次只能提出两个请求,每次调用web服务总共可以得到20个结果。已经有一段时间了,但我认为请求对象是一个数组,您最多可以执行两个操作。您可以尝试一下,它可以加快您的流程。我知道relatedItemPage适用于与您的项目相关的项目,而不是该项目的多个副本。如果我读错了请告诉我谢谢!你说得对。看来这件事是我干的。我在网上做了一些挖掘,没能找到多少。你试过在AWS论坛上发帖吗?我知道API最近有很多变化,这使得许多任务变得更加困难:我在论坛上发了一篇帖子,但没有得到回应。谢谢你帮忙调查这件事!如果条件设置为all,itemSearch最多将返回9个结果。如果指定一个条件,它将返回该条件的3个结果。第二段我已经将“ItemPage”参数添加到ItemSearchRequest对象中——文档声明这将检索结果页面。此示例每页调用一次服务。我不知道它是否有效,因为我还没有尝试过,但这只是一个建议:)