Amazon web services 计算的签名与您提供的签名不匹配

Amazon web services 计算的签名与您提供的签名不匹配,amazon-web-services,Amazon Web Services,“我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档” 下面是我的SignatureHelper(基于Amazon类库) 网址 这是我收到的回信 Code: SignatureDoesNotMatch Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key

“我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档”

下面是我的SignatureHelper(基于Amazon类库)

网址

这是我收到的回信

Code: SignatureDoesNotMatch
Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
我认为这是我的助手(不确定是什么),因为我看了很多代码示例,看起来都是一样的

谢谢


克莱尔

@Michael-sqlbot是正确的。但是在解决方案清理和重建后,它工作了:-)


我建议任何有困难的人使用并复制“字符串签名”,如果您的代码没有产生相同的响应,那么问题在于您的代码,如果它看到了,您如何对其进行编码并将其附加到请求(我的问题)。

您有什么原因不能或不想,使用Amazon SDK为您进行签名?如果它是v4,那么请参阅@jarmod上的故障排除指南。它看起来非常混乱,我希望能够理解它在做什么,并使用我们的标准将其整合到我们的系统中。我已经看过了故障排除指南,我没有得到一个返回字符串,我能看到的只是标准消息您使用的是什么版本的签名?查看?@ClareBarrington为什么使用平台提供商提供的现有、经过良好测试的SDK功能要比编写自己的、可能有漏洞的相同版本更“混乱”?但是,如果您真的需要自己签名,那么AWS文档和开源SDK的结合应该会有所帮助。您会发现v2签名非常简单,但v4签名并不是那么简单。我认为您自己的滚动是完全合理的。SDK最终会妨碍你。我在这里观察到的第一件事是传统上使用的大写URL编码,例如,
=
变成
%3D
而不是
%3D
。另外,后面的
+HTTP/1.1
x-amazon-user-agent…
似乎是无关的。
mws.amazonservices.com
/
AWSAccessKeyId=***&Action=SubmitFeed&FeedType=_POST_PRODUCT_DATA_&MWSAuthToken=****&Merchant=***&PurgeAndReplace=false&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-06-30T13%3A47%3A42Z&Version=2009-01-01
"https://mws.amazonservices.com/?AWSAccessKeyId=***&Action=SubmitFeed&Merchant=***&MWSAuthToken=***&SignatureVersion=2&Timestamp=2015-06-30T13%3a47%3a42Z&Version=2009-01-01&Signature=bfSpx9m7PIH3CbKNkjLDwY9norfD8mbTROJyxYnCMSU%3d&SignatureMethod=HmacSHA256&FeedType=_POST_PRODUCT_DATA_&PurgeAndReplace=false+HTTP%2f1.1&x-amazon-user-agent=Developer(Language%3dc%23)"
Code: SignatureDoesNotMatch
Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.