API рекламы продуктов Amazon для Asp.net & C # - PullRequest
4 голосов
/ 02 декабря 2010

Я хочу получать книги, используя Amazon Product Advertising API с asp.net и C #. Все руководства и коды настолько запутаны, что не дают вам единого метода поиска книг. Есть ли какая-нибудь отдельная заглушка, которую можно использовать для вызова службы и получения книг на основе ISBN. спасибо

Ответы [ 3 ]

0 голосов
/ 15 марта 2012

Я получаю это, когда использую этот образец. похоже, что в 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.
0 голосов
/ 17 мая 2016

Для получения книг установите эту библиотеку (Install-Package Nager.AmazonProductAdvertising) https://www.nuget.org/packages/Nager.AmazonProductAdvertising/

Пример:

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

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.UK);
//The Lord of the Rings
var result = wrapper.Lookup("978-0261102385");
0 голосов
/ 08 января 2011

Есть хороший пример решения, которое вы можете скачать.http://aws.amazon.com/code/2480?_encoding=UTF8&queryArg=searchQuery&x=0&fromSearch=1&y=0&searchPath=code&searchQuery=Advertising

Они дают вам класс с именем 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();
}

Вам нужно использовать ItemLookup (как в примере), но установить IdType вISBN.Затем установите ItemId на фактический ISBN.Вот подробности о ItemLookup:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...