我正在使用亚马逊产品广告 API 搜索 2 个不同的 UPC:
// prepare the first ItemSearchRequest
// prepare a second ItemSearchRequest
ItemSearchRequest request1 = new ItemSearchRequest();
request1.SearchIndex = "All";
//request1.Keywords = table.Rows[i].ItemArray[0].ToString();
request1.Keywords="9120031340270";
request1.ItemPage = "1";
request1.ResponseGroup = new string[] { "OfferSummary" };
ItemSearchRequest request2 = new ItemSearchRequest();
request2.SearchIndex = "All";
//request2.Keywords = table.Rows[i+1].ItemArray[0].ToString();
request2.Keywords = "9120031340300";
request2.ItemPage = "1";
request2.ResponseGroup = new string[] { "OfferSummary" };
// batch the two requests together
ItemSearch itemSearch = new ItemSearch();
itemSearch.Request = new ItemSearchRequest[] { request1,request2 };
itemSearch.AWSAccessKeyId = accessKeyId;
// issue the ItemSearch request
ItemSearchResponse response = client.ItemSearch(itemSearch);
foreach (var item in response.Items[0].Item)
{
}
foreach (var item in response.Items[1].Item)
{
}
是否可以通过设置 keywords = "9120031340256 and 9120031340270"
有人知道怎么做吗?
我需要专门搜索 UPC 吗?
最佳答案
从查看 API docs如果您想获得多个 UPC 的结果,我认为您可能想要使用 ItemLookup。
ItemLookup itemLookup = new ItemLookup(){
AssociateTag = "myaffiliatetag-20"
};
itemLookup.AWSAccessKeyId = MY_AWS_ID;
ItemLookupRequest itemLookupRequest = new ItemLookupRequest();
itemLookupRequest.IdTypeSpecified = true;
itemLookupRequest.IdType = ItemLookupRequestIdType.UPC;
itemLookupRequest.ItemId = new String[] { "9120031340300", "9120031340270" };
itemLookupRequest.ResponseGroup = new String[] { "OfferSummary" };
itemLookup.Request = new ItemLookupRequest[] { itemLookupRequest };
ItemLookupResponse response = client.ItemLookup(itemLookup);
foreach(var item in response.Items[0])
{
//Do something...
Console.WriteLine(item.ItemAttributes.Title);
}
话虽这么说,如果您不通过某些 ID(UPC、ASIN 等)进行查找,那么您进行批量关键字搜索的原始代码似乎是进行多个关键字搜索的唯一方法一个请求(我能找到..)。如果进行关键字搜索,您总是可以制作一个 ItemSearchRequest 生成器方法,以在创建倍数时减少重复代码。
关于c# - 亚马逊产品广告 API - 搜索多个 UPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447277/