针对Asp.net的亚马逊产品广告API&;C#

针对Asp.net的亚马逊产品广告API&;C#,c#,asp.net,json,soap,amazon-web-services,C#,Asp.net,Json,Soap,Amazon Web Services,我想使用带有asp.net和C#的Amazon产品广告API获取书籍。所有的指南和代码都很混乱,以至于它们没有给你一个单一的方法来搜索书籍。 是否有任何一个存根可以用来调用服务并根据ISBN获取书籍。 谢谢您可以下载一个很好的示例解决方案。 他们给您一个名为SignedRequestHelper的类,然后您进行如下调用: public static void Main() { SignedRequestHelper helper = new Sig

我想使用带有asp.net和C#的Amazon产品广告API获取书籍。所有的指南和代码都很混乱,以至于它们没有给你一个单一的方法来搜索书籍。 是否有任何一个存根可以用来调用服务并根据ISBN获取书籍。
谢谢

您可以下载一个很好的示例解决方案。

他们给您一个名为SignedRequestHelper的类,然后您进行如下调用:

   public static void Main()
        {
            SignedRequestHelper helper = new SignedRequestHelper(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, DESTINATION);

            /*
             * The helper supports two forms of requests - dictionary form and query string form.
             */
            String requestUrl;
            String title;

            /*
             * Here is an ItemLookup example where the request is stored as a dictionary.
             */
            IDictionary<string, string> r1 = new Dictionary<string, String>();
            r1["Service"] = "AWSECommerceService";
            r1["Version"] = "2009-03-31";
            r1["Operation"] = "ItemLookup";
            r1["ItemId"] = ITEM_ID;
            r1["ResponseGroup"] = "Small";

            /* Random params for testing */
            r1["AnUrl"] = "http://www.amazon.com/books";
            r1["AnEmailAddress"] = "foobar@nowhere.com";
            r1["AUnicodeString"] = "αβγδεٵٶٷٸٹٺチャーハン叉焼";
            r1["Latin1Chars"] = "ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJij";

            requestUrl = helper.Sign(r1);
            title = FetchTitle(requestUrl);

            System.Console.WriteLine("Method 1: ItemLookup Dictionary form.");
            System.Console.WriteLine("Title is \"" + title + "\"");
            System.Console.WriteLine();
}
publicstaticvoidmain()
{
SignedRequestHelper=新的SignedRequestHelper(MY_AWS_ACCESS_KEY_ID、MY_AWS_SECRET_KEY、DESTINATION);
/*
*助手支持两种形式的请求-字典形式和查询字符串形式。
*/
字符串请求URL;
字符串标题;
/*
*下面是一个ItemLookup示例,其中请求存储为字典。
*/
IDictionary r1=新字典();
r1[“服务”]=“AWSECommerceService”;
r1[“版本”]=“2009-03-31”;
r1[“操作”]=“项目查找”;
r1[“项目ID”]=项目ID;
r1[“响应组”]=“小”;
/*测试用随机参数*/
r1[“AnUrl”]=”http://www.amazon.com/books";
r1[“电子邮件地址”]=“foobar@nowhere.com";
r1[“AUnicodeString”]=“αβγδεチャーハン叉焼";
r1[“拉丁字母”]=“拉丁字母”;
requestUrl=helper.Sign(r1);
title=FetchTitle(requestUrl);
System.Console.WriteLine(“方法1:ItemLookup字典表单”);
System.Console.WriteLine(“Title是\”“+Title+”\”);
System.Console.WriteLine();
}
您需要使用ItemLookup(如示例所示),但将IdType设置为ISBN。然后将ItemId设置为实际的ISBN。以下是有关ItemLookup的详细信息:


docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?ItemLookup.html

当我使用该示例时,我得到了这个消息。看起来API最近发生了变化

System.InvalidOperationException: There is an error in the XML document. ---> Sy
stem.InvalidOperationException: <ItemLookupResponse xmlns='http://webservices.am
azon.com/AWSECommerceService/2011-08-01'> was not expected.
System.invalidoOperationException:XML文档中有错误。-->Sy
stem.InvalidOperationException:不应为。

要获取书籍,请安装此库(安装包Nager.AmazonProductAdvertising)

例如:

var authentication=newamazonaauthentication(“accesskey”、“secretkey”);
var client=新的AmazonProductAdvertisingClient(身份验证,AmazonEndpoint.UK);
var result=await client.GetItemsAsync(“978-0261102385”);

遗憾的是,本例中没有关于ItemSearchRequest的内容。