7

最初のコードを 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>");
}

エラーが発生します

The request must contain the parameter Signature.

今すぐリクエストに「署名」しなければならないことはわかっていますが、「どこ」でこれを行うか、またはどのように行うかわかりませんか? どんな助けでも大歓迎ですか?

4

2 に答える 2

2

Amazon アクセス キー ID、タイムスタンプ、およびリクエスト操作の SHA256 ハッシュとタイムスタンプを含む SOAP リクエスト ヘッダーに追加する必要があります。そのためには、SOAP メッセージが送信される直前にアクセスする必要があります。http://flyingpies.wordpress.com/2009/08/01/17/にチュートリアルとサンプル プロジェクトをまとめました。

于 2010-05-29T18:58:16.263 に答える
1

記録のために:

このエラーが発生するもう 1 つの理由は、スペースを含むキーワードが原因です。

例:

'http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=xxx&AssociateTag=usernetmax-20&Version=2011-08-01&Operation=ItemSearch&ResponseGroup=Medium,Offers&SearchIndex=All&Keywords=ベビーカー&MerchantId=All&Condition=All&Availability=Available&ItemPage=1&Timestamp =2012-05-16T02:17:32Z&Signature=ye5c2jo99cr3%2BPXVkMyXX8vMhTC21UO4XfHpA21%2BUCs%3D'

そのはず:

' http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=xxx&AssociateTag=usernetmax-20&Version=2011-08-01&Operation=ItemSearch&ResponseGroup=Medium,Offers&SearchIndex=All&Keywords=Baby%20Stroller&MerchantId=All&Condition=All&Availability=Available&ItemPage= _ 1&タイムスタンプ=2012-05-16T02:17:32Z&署名=ye5c2jo99cr3%2BPXVkMyXX8vMhTC21UO4XfHpA21%2BUCs%3D'

PHP ソリューション:

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

また

$Keywords = urlencode($Keywords);
于 2012-05-16T02:22:10.390 に答える