Amazon(AWS) - 请求必须包含参数Signature

lee*_*n3o 7 c# soap amazon-web-services amazon-product-api

我正在努力完成让我的第一部分代码与AWS一起工作的最后一部分 - 我已经做到了这一点,我在VS中附加了Web引用,这有这个

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>");
}
Run Code Online (Sandbox Code Playgroud)

我收到了错误

The request must contain the parameter Signature.
Run Code Online (Sandbox Code Playgroud)

我知道你现在必须"签署"请求,但无法弄清楚"我会在哪里做"或如何做?任何帮助非常感谢?

Ore*_*ner 2

您必须添加到 SOAP 请求标头,包括您的 Amazon 访问密钥 ID、时间戳以及请求操作的 SHA256 哈希值和时间戳。为此,您需要在发送 SOAP 消息之前访问该消息。我在http://flyingpies.wordpress.com/2009/08/01/17/上整理了一个演练和一个示例项目。