2010-05-29 4 views
7

Я борюсь с заключительной частью получения моего первого кода кода, работающего с AWS. Я получил это далеко, я привязал веб-ссылку в VS и это есть этоAmazon (AWS) - Запрос должен содержать параметр Подпись

amazon.AWSECommerceService service = new amazon.AWSECommerceService(); 

// prepare an ItemSearch request 
amazon.ItemSearchRequest request = new amazon.ItemSearchRequest(); 
request.SearchIndex = "DVD"; 
request.Title = "scream"; 
request.ResponseGroup = new string[] { "Small" }; 

amazon.ItemSearch itemSearch = new amazon.ItemSearch(); 
itemSearch.AssociateTag = ""; 
itemSearch.Request = new ItemSearchRequest[] { request }; 
itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["AwsAccessKeyId"]; 

itemSearch.Request = new ItemSearchRequest[] { request }; 
ItemSearchResponse response = service.ItemSearch(itemSearch); 

// write out the results 
foreach (var item in response.Items[0].Item) 
{ 
    Response.Write(item.ItemAttributes.Title + "<br>"); 
} 

Я получаю ошибку

The request must contain the parameter Signature. 

Я знаю, что у вас есть на запросы «знаковые» сейчас, но не могу понять «где» Я хотел бы сделать это или как? любая помощь сильно ценится?

+0

leen3o выполнил ваш код? У меня такая же проблема. вы можете мне помочь ?? –

ответ

2

Вы должны добавить заголовки запроса SOAP, включая идентификатор ключа доступа к Amazon, метку времени и хэш SHA256 операции запроса и метку времени. Для этого вам потребуется доступ к SOAP-сообщению непосредственно перед его отправкой. Есть пошаговое руководство и образец проекта, который я собрал в http://flyingpies.wordpress.com/2009/08/01/17/.

+0

Привет - Я выполнил ваш учебник, прежде чем я разместил его, но не смог заставить его работать в моем веб-приложении.Каждый раз, когда он просто не мог понять, что такое AWSECommerceServicePortTypeClient? В конце концов мне удалось получить образец кода от Amazon. Но мне пришлось установить Microsoft WSE 3.0 и удалить мою веб-ссылку: S Кровавое безумное количество работы, чтобы получить что-то простое !!! – leen3o

1

Для записи:

Еще одна причины, чтобы получить эту ошибку из-за ключевые слова с пробелами в нем.

Пример:

«http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService & AWSAccessKeyId = ххх & AssociateTag = usernetmax-20 & версия = 2011-08-01 & Операция = ItemSearch & ResponseGroup = Medium, предложения & SearchIndex = Все & Ключевые слова = Детские Коляски & MerchantId = Все & Condition = Все & Наличие = Доступен & ItemPage = 1 & Отметка = 2012-05-16T02: 17: 32Z & Подпись = ye5c2jo99cr3% 2BPXVkMyXX8vMhTC21UO4XfHpA21% 2BUCs% 3D '

Оно должно быть:

' HTTP: // ЭКС. amazonaws.com/onca/xml?Service=AWSECommerceService & AWSAccessKeyId = ххх & AssociateTag = usernetmax-20 & Version = 2011-08-01 & Операция = ItemSearch & ResponseGroup = Medium, предложения & SearchIndex = Все & Ключевые слова = Детские% 20Stroller & MerchantId = Все & Condition = Все & Наличие = Доступен & ItemPage = 1 & Отметка = 2012-05-16T02: 17: 32Z & Подпись = ye5c2jo99cr3% 2BPXVkMyXX8vMhTC21UO4XfHpA21% 2BUCs% 3D»

PHP решение:

$Keywords = str_replace(' ', '%20', $Keywords); 

или

$Keywords = urlencode($Keywords); 
Смежные вопросы