[英]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.