2011-06-22 103 views
3

使用亞馬遜產品廣告API我正在尋找2點不同的UPC:亞馬遜產品廣告API - 搜索多個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) 
{ 


} 

是否有可能這兩個獨立請求合併成一個請求,只是有第一要求通過設置返回2項目keywords = "9120031340256 and 9120031340270"

有誰知道如何做到這一點?我需要專門搜索UPC,這是做到這一點的正確方法嗎?

回答

1

您可以使用以下nuget 包。

PM> Install-Package Nager.AmazonProductAdvertising 

var authentication = new AmazonAuthentication(); 
authentication.AccessKey = "accesskey"; 
authentication.SecretKey = "secretkey"; 

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.DE); 
var result = wrapper.Lookup(new string[] { "9120031340300", "9120031340270" }, AmazonResponseGroup.OfferSummary); 
3

從看API docs我想你可能想要使用ItemLookup,如果你想獲得多個UPCs的結果。

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生成器方法來減少重複代碼。

+0

謝謝你,但是這不是爲我工作。出於某種原因,也許我們錯誤地簽署了請求? –

+0

我會發布有關使用這兩種方法獲得的任何錯誤的更多詳細信息。 – bronsoja

+0

這是一篇很棒的文章,如果您在簽名時遇到問題(現在需要):http://flyingpies.wordpress.com/2009/08/01/17/ - 您需要下載示例項目 –

相關問題