SQS接收消息请求

时间:2014-06-02 15:40:52

标签: amazon-web-services amazon-sqs

我正在尝试编写POST请求,使用SQS签名从C++ V4服务器中获取邮件,POST邮件看起来像此,

  

POST / 134148934511 / Localhost /?Action = ReceiveMessage& SignatureMethod = AWS4-HMAC-SHA256& SignatureVersion = 4& Version = 2012-11-05& X-Amz-Credential = AKIAI21OTNJCTG12UP7NA / 20140602 / us-east-1 / SQS / aws4_request&安培; X-AMZ-日期= 20140602T152045Z&安培; X-AMZ-内容-SHA256 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&安培; X-AMZ-SignedHeaders =主机; X-AMZ-内容-SHA256; X-AMZ-日期&安培;签名= 6fada82dcfa52392bd15d29946115e34e1f2485fe87a59cead8320fa05bcea67 HTTP / 1.1   主持人:sqs.us-east-1.amazonaws.com   接受: /   内容长度:0   内容类型:application / x-www-form-urlencoded

但是我收到一条403 Forbidden错误消息(虽然我有所需的权限)。 (我确信aws版本4签名过程是正确的(用S3检查)) 我做错了什么?

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。

上述请求中存在一些错误。

a)在POST请求中,您不要将查询参数包含在URL中,而是将其添加到正文本身(这也是使用标题"内容类型:application / x向服务器指示的-www窗体-urlencoded"。)

b)始终记得将所有标题添加到创建签名时使用的curl请求中,否则会抛出"签名不匹配"错误。

相关问题