繁体   English   中英

ASP.NET 亚马逊项目搜索

[英]ASP.NET Amazon ItemSearch

有没有人知道任何好的例子,或者愿意解释如何进行类似的亚马逊查找, http://blogs.msdn.com/b/coding4fun/archive/2006/10/31/912260.aspx ,我会就用这个吧,不过好像已经过时了,源码也没有了。 理想我希望能够做的是在任何一个关键字上查找项目,例如“星际迷航”或直接使用 UPC。 我想返回的是标题、描述、年份和图像链接、类型(DVD、书籍、音乐)。 任何帮助都会很棒,谢谢。

为 Amazon ItemLookup编写了一个C# Wrapper,它为您提供了一个方便的对象图。 它现在只支持 ItemLookup。 在 BitBucket 上有资源。

您可以拨打以下电话:

var item = client.LookupByAsin("B0037X9N5U");
double? price = item.GetLowestPrice();

嗨,使用以下 nuget Nager.AmazonProductAdvertising包非常容易

金块

PM> Install-Package Nager.AmazonProductAdvertising

例子

var authentication = new AmazonAuthentication("accesskey", "secretkey");
var client = new AmazonProductAdvertisingClient(authentication, AmazonEndpoint.US);
var result = await client.GetItemsAsync("B0037X9N5U");

适用于 .NET 的 SprightlySoft AWS 组件允许您与亚马逊的产品广告 API 进行交互。 以下是基于 UPC 查找项目的示例代码。 http://sprightlysoft.com/ 上免费获取组件。 该组件随附示例代码,向您展示如何使用产品广告 API 执行 ItemSearch。

//Product Advertising API, ItemLookup: http://docs.amazonwebservices.com/AWSECommerceService/2010-10-01/DG/ItemLookup.html

SprightlySoftAWS.REST MyREST = new SprightlySoftAWS.REST();

String RequestURL;
RequestURL = "https://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&Version=2010-10-01";
RequestURL += "&AWSAccessKeyId=" + System.Uri.EscapeDataString(TextBoxAWSAccessKeyId.Text) + "&SignatureVersion=2&SignatureMethod=HmacSHA256&Timestamp=" + Uri.EscapeDataString(DateTime.UtcNow.ToString("yyyy-MM-dd\\THH:mm:ss.fff\\Z"));
RequestURL += "&ItemId=025192022272";
RequestURL += "&IdType=UPC";
RequestURL += "&SearchIndex=DVD";

String RequestMethod;
RequestMethod = "GET";

String SignatureValue;
SignatureValue = MyREST.GetSignatureVersion2Value(RequestURL, RequestMethod, "", TextBoxAWSSecretAccessKey.Text);

RequestURL += "&Signature=" + System.Uri.EscapeDataString(SignatureValue);

Boolean RetBool;
RetBool = MyREST.MakeRequest(RequestURL, RequestMethod, null);
System.Diagnostics.Debug.Print(MyREST.LogData);

if (RetBool == true)
{
    String ResponseMessage = "";
    System.Xml.XmlDocument MyXmlDocument;
    System.Xml.XmlNamespaceManager MyXmlNamespaceManager;
    System.Xml.XmlNode MyXmlNode;
    System.Xml.XmlNodeList MyXmlNodeList;

    MyXmlDocument = new System.Xml.XmlDocument();
    MyXmlDocument.LoadXml(MyREST.ResponseString);

    MyXmlNamespaceManager = new System.Xml.XmlNamespaceManager(MyXmlDocument.NameTable);
    MyXmlNamespaceManager.AddNamespace("amz", "http://webservices.amazon.com/AWSECommerceService/2010-10-01");

    MyXmlNodeList = MyXmlDocument.SelectNodes("amz:ItemLookupResponse/amz:Items/amz:Item", MyXmlNamespaceManager);

    if (MyXmlNodeList.Count == 0)
    {
        ResponseMessage = "Item not found.";
    }
    else
    {
        foreach (System.Xml.XmlNode ItemXmlNode in MyXmlNodeList)
        {
            MyXmlNode = ItemXmlNode.SelectSingleNode("amz:ItemAttributes/amz:Title", MyXmlNamespaceManager);
            ResponseMessage += "Title = " + MyXmlNode.InnerText;

            ResponseMessage += Environment.NewLine;
        }
    }

    MessageBox.Show(ResponseMessage);
}
else
{
    MessageBox.Show(MyREST.ResponseStringFormatted);
}

亚马逊网站上有一整套示例: http : //aws.amazon.com/code/Product%20Advertising%20API? _encoding=UTF8& jiveRedirect=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM