2010-05-29 6 views
7

Je suis aux prises avec la dernière partie de l'obtention de mon premier code de travail avec l'AWS - Je suis arrivé à ce point, j'ai joint la référence Web dans VS et cela cetteAmazon (AWS) - La demande doit contenir le paramètre Signature

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>"); 
} 

Je reçois l'erreur

The request must contain the parameter Signature. 

Je sais que vous avez des demandes « signe » maintenant, mais ne peut pas comprendre « où » je ferais ceci ou comment? toute aide grandement appréciée?

+0

leen3o votre code at-il été exécuté? J'ai le même problème. pouvez-vous m'aider ?? –

Répondre

2

Vous devez ajouter aux en-têtes de demande SOAP, y compris votre ID de clé d'accès Amazon, un horodatage et le hachage SHA256 de l'opération de requête et l'horodatage. Pour ce faire, vous devez avoir accès au message SOAP juste avant d'être envoyé. Il y a une procédure pas à pas et un exemple de projet que j'ai mis en place au http://flyingpies.wordpress.com/2009/08/01/17/.

+0

Bonjour - J'ai suivi votre didacticiel avant de publier ce message, mais je n'ai pas réussi à le faire fonctionner dans mon application Web.Chaque fois, il ne pouvait tout simplement pas comprendre ce qu'était AWSECommerceServicePortTypeClient? J'ai réussi à obtenir un exemple de code fonctionnant à partir d'Amazon à la fin - Mais j'ai dû installer Microsoft WSE 3.0 et supprimer ma référence Web: S Une quantité de travail sanglante et folle pour obtenir quelque chose de simple à travailler !!! – leen3o

1

Pour mémoire:

Une autre raison pour obtenir cette erreur est due à des mots-clés avec des espaces.

Exemple:

« http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService & & AWSAccessKeyId = xxx AssociateTag = usernetmax-20 & & Version = 01/08/2011 Opération = itemSearch & ResponseGroup = moyen, Offres & SearchIndex = Tous & Mots-clés = bébé poussette & MerchantId = Tous & Condition = Tous & Disponibilité = Disponible & ItemPage = 1 & Timestamp = 2012-05-16T02: 17: 32Z & Signature = ye5c2jo99cr3% 2BPXVkMyXX8vMhTC21UO4XfHpA21% 2BUCs% 3D '

Il devrait être:

' http: // ecs. amazonaws.com/onca/xml?Service=AWSECommerceService & AWSAccessKeyId = xxx & AssociateTag = usernetmax-20 & version = 2011-08-01 & opération = itemSearch & ResponseGroup = moyen, Offres & SearchIndex = Tous & Mots-clés = bébé% 20Stroller & MerchantId = Tous & Condition = Tous & Disponibilité = Disponible & ItemPage = 1 & Timestamp = 2012-05-16T02: 17: 32Z & Signature = ye5c2jo99cr3% 2BPXVkMyXX8vMhTC21UO4XfHpA21% 2BUCs% 3D »

solution PHP:

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

ou

$Keywords = urlencode($Keywords); 
Questions connexes