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

时间:2013-03-15 13:09:44

标签: java amazon-web-services

我尝试在我的数据库中获取ASIN电影,尝试通过EAN进行匹配。我创建了简单的java类来连接亚马逊:

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

        }

这是有效的,但有一件事对我来说真的很奇怪。当在这一行:

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

我使用40 000而不是10 WS返回:

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

这是可以理解的。但是当我将数字设置为大于10时,WS不会返回eny错误,但结果没有项目:

enter image description here

有谁能告诉我我做错了什么或者我忘记了什么?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我找到了答案,所以我把它放在这里也许有人节省一些时间。 在亚马逊ItemLookup文件中写道:

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

类型:字符串

默认值:无

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