#c# #api #soap #amazon-web-services #amazon
#c# #API #soap #amazon-advertising-api
Вопрос:
Я пытаюсь использовать новый продукт Amazon API для поиска продуктов на Amazon. Я просматривал их пример кода и примеры других людей, но я не получаю никаких результатов и задаюсь вопросом, использовал ли кто-нибудь еще API в последнее время и мог бы оказать некоторую помощь?
using System;
using System.ServiceModel;
using Simple.Amazon.ECS;
namespace Simple {
class Program {
// your Amazon ID's
private const string accessKeyId = "*******************";
private const string secretKey = "************************************";
// the program starts here
static void Main(string[] args) {
// create a WCF Amazon ECS client
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
binding.MaxReceivedMessageSize = int.MaxValue;
AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient(
binding,
new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService"));
// add authentication to the ECS client
client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey));
// prepare an ItemSearch request
ItemSearchRequest request = new ItemSearchRequest();
request.SearchIndex = "Books";
request.Title = "WCF";
request.ResponseGroup = new string[] { "Small" };
ItemSearch itemSearch = new ItemSearch();
itemSearch.Request = new ItemSearchRequest[] { request };
itemSearch.AWSAccessKeyId = accessKeyId;
// issue the ItemSearch request
ItemSearchResponse response = client.ItemSearch(itemSearch);
// write out the results
foreach (var item in response.Items[0].Item) {
Console.WriteLine(item.ItemAttributes.Title);
}
}
}
}
Все образцы / примеры похожи на это по структуре, но когда дело доходит до цикла foreach, элементы не возвращаются (Null), поэтому я получаю ошибку исключения null.
Комментарии:
1. Что именно
response
содержит?2. «Ссылка на объект не установлена для экземпляра объекта». Когда он достигает цикла foreach.
3. Хотел бы я сказать вам, что не так. Я запустил код, который я загрузил из [1], и он работает так, как ожидалось. [1] flyingpies.wordpress.com/2009/08/01/17
4. Да, я также скачал образец оттуда и просто добавил свой ключ доступа и секретный ключ, и он падает, что очень расстраивает, если вы только что сделали это, и это работает для вас.
5. Добавление поиска предметов. AssociateTag = «»; в коде, похоже, проблема решена, и я возвращаю результаты.
Ответ №1:
если решение, указанное выше, все еще не будет работать.
попробуйте это..
загрузите пример кода на http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx
нам нужно обновить ссылки на службы, внести небольшие изменения в app.config, program.cs и reference.cs.
app.config: (1.) Тег AppSettings; присвоить accessKeyId и значение SecretKey, добавить . (2.) тег поведения -> Тег конечных точек -> тег поведения -> тег подписи; присвоить ключ доступа и значение секретного ключа. (3.) тег привязки -> Базовый тег привязки HttpBinding; (необязательно) удалить тег привязки, кроме AWSECommerceServiceBindingNoTransport и AWSECommerceServiceBindingTransport. (4.) тег клиента; удалить тег конечной точки, кроме AWSECommerceServiceBindingTransport.
program.cs: добавить поиск предметов.Ассоциативный тег = ConfigurationManager.AppSettings[«AssociateTag»]; перед ItemSearchResponse ответ = amazonClient.Поиск предметов(ItemSearch);
reference.cs: (откройте файл в папке ссылок на службы с помощью Visual studio) измените private ImageSet[][] imageSetsField; на private ImageSet[] imageSetsField; измените public ImageSet[][] Наборы изображений {…} на public ImageSet[] Наборы изображений {…}
наконец-то мы можем запустить нашу программу, и она заработает. удачи..
примечание: я использую Microsoft Visual Studio 2010. будет 1 предупреждение (недопустимое поведение подписи дочернего элемента), я думаю, мы можем его проигнорировать, или, если у вас есть какое-либо решение, пожалуйста, поделитесь .. ^^ v..
Ответ №2:
Это ошибка wsdl, я использую ссылку ниже, чтобы исправить ее:https://forums.aws.amazon.com/thread.jspa?threadID=86989