简体   繁体   English

一个亚马逊请求可以发送多少个物品?

[英]How many items can send in one amazon request?

I try to get ASIN for movies in my DB, try to match via EAN . 我尝试在数据库中获取电影的ASIN ,尝试通过EAN进行匹配。 I created simple java class to connect with Amazon: 我创建了简单的java类来与Amazon连接:

AWSECommerceServiceservice = new AWSECommerceService();
service.setHandlerResolver(new AwsHandlerResolver(AMAZON_SECRET_KEY));
AWSECommerceServicePortType port = service.getAWSECommerceServicePortDE();
Holder<OperationRequest> operationrequest = new Holder<OperationRequest>();
failedItem = 0;
doneItem = 0;

ItemLookup lookup = new ItemLookup();
lookup.setAWSAccessKeyId(AMAZON_ACCESS_ID);
lookup.setAssociateTag(ASSOCIATE_TAG);
ItemLookupRequest request = new ItemLookupRequest();
request.getResponseGroup().add("ItemAttributes");
request.setSearchIndex("Video");

request.setIdType("EAN");
//Here iterates on my amazon-movies object
   for (AmazonSIdN i : amazonItems) {
        request.getItemId().add(i.getEan());
         if (request.getItemId().size() % 10 == 0) { //numbers of items in request
             LOG.info("Request size = " + request.getItemId().size());
              break;
           }
    }
Holder<List<Items>> items = new Holder<List<Items>>();
lookup.getRequest().add(request);

port.itemLookup(lookup.getMarketplaceDomain(), lookup.getAWSAccessKeyId(), 
lookup.getAssociateTag(),lookup.getXMLEscaping(), lookup.getValidate(),  
lookup.getShared(), lookup.getRequest(),operationrequest, items);

        List<Items> result = items.value;
        for (int k = 0; k < result.get(0).getItem().size(); ++k) {
            Item i = result.get(0).getItem().get(k);
            //do something with item

        }

It is working, but one thing is really strange for me. 它正在工作,但是对我来说真的很奇怪。 When in this line: 在此行中:

if (request.getItemId().size() % 10 == 0) { //numbers of items in request

I use 40 000 instead of 10 WS returns: 我使用40 000而不是10 WS返回:

The server sent HTTP status code 413: Request Entity Too Large

And this is understandable. 这是可以理解的。 But when I put number greater then 10 WS doesn't return eny errors but result has no items: 但是,当我输入的数字更大时,则10 WS不会返回eny错误,但结果没有任何内容:

在此处输入图片说明

Can anybody tell me what I a'm doing wrong or what did I forget set? 谁能告诉我我做错了什么,或者我忘记了什么? Any advice? 有什么建议吗?

I found an answer, so I put it here maybe someone save some time in future. 我找到了答案,所以我把它放在这里,也许有人将来可以节省一些时间。 In Amazon ItemLookup documentatnion is written: 在Amazon ItemLookup文档中写道:

ItemId - One or more (up to ten) positive integers that uniquely identify an item. ItemId-唯一标识一项的一个或多个(最多十个)正整数。 The meaning of the number is specified by IdType. 数字的含义由IdType指定。 That is, if IdType is ASIN, the ItemId value is an ASIN. 也就是说,如果IdType为ASIN,则ItemId值为ASIN。 If ItemIdis an ASIN, a search index cannot be specified in the request. 如果ItemIdis为ASIN,则无法在请求中指定搜索索引。

Type: String 类型:字符串

Default: None 默认值:无

Constraints: Must be a valid item ID. 约束:必须是有效的商品ID。 For more than one ID, use a comma-separated list of up to ten IDs. 对于多个ID,请使用逗号分隔的列表(最多十个ID)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM