由UPC进行项目查找的amazon web services

我的工作环境是Visual Studio 2008 + C#

我正在使用Amazon WebService,我想使用SOAP从Amazon获取数据,但是当我尝试传递IDType = UPC时,它会给出以下错误消息,那么我该怎么做呢?

错误:

036725229884不是ItemId的有效值。 请更改此值,然后重试您的请求

mycode的:

ItemLookupRequest request1 = new ItemLookupRequest(); request1.IdType = ItemLookupRequestIdType.UPC; request1.IdTypeSpecified = true; request1.ItemId = new string[] { ProductID }; request1.ResponseGroup = new string[] { "Request", "Large", "OfferFull", "BrowseNodes" }; request1.MerchantId = "All"; request1.Condition = Condition.All; request1.SearchIndex = "Books"; 

注意:如何添加多个SearchIndex(“书籍”,“照片”,“video”)?

我使用了以下WebService: http : //webservices.amazon.com/AWSECommerceService/2009-11-01/US/AWSECommerceService.wsdl

也厌倦了UPC和EAN之间的区别。

UPC = 12位,EAN = 13位

如果您只是将UPC 738678251584 (12位数)或EAN 3253581057803 (13位数) 3253581057803 Amazon.com,它将在说明中显示为UPC,但使用API​​时,您必须在搜索时指定EAN。

我们有两种产品,您需要相应地指定搜索类型,否则将无法找到。

编辑 :或者您可以将0添加到任何12位数字,并始终搜索EAN。 这可能是最好的解决方案。 根据定义“0”+ UPC = EAN

此请求对我有用(searchType是UPC或EAN):

  ItemLookup itemLookup = new ItemLookup() { AssociateTag = "XXXXX-20", }; itemLookup.AWSAccessKeyId = ACCESS_ID; ItemLookupRequest itemLookupRequest = new ItemLookupRequest(); itemLookupRequest.IdTypeSpecified = true; itemLookupRequest.IdType = searchType; itemLookupRequest.SearchIndex = "All"; itemLookupRequest.ItemId = upcEanList; itemLookupRequest.ResponseGroup = new[] { "OfferSummary", "ItemAttributes" }; itemLookup.Request = new ItemLookupRequest[] { itemLookupRequest }; 

我不认为亚马逊支持跨多个搜索索引的查询。 但是,有一个名为All的特殊索引可用于UPC查找。 对此索引使用的参数有一些限制,但由于您为MerchantIdCondition指定了All ,因此它可能有效。 如果没有,您可以在没有这些参数的情况下执行查询,然后在获得您感兴趣的UPC的ASIN后发出新查询。