Select URL编码为%20与%201的AWS签名问题?

Select URL编码为%20与%201的AWS签名问题?,select,amazon-web-services,signature,url-encoding,amazon-simpledb,Select,Amazon Web Services,Signature,Url Encoding,Amazon Simpledb,在发送SELECT请求时,我遇到了AWS SimpleDB签名问题,我被难住了。最糟糕的是,它的表现似乎不一致 当我选择下面的选项时,它很好,工作非常完美: 从竞赛限制3中选择itemName 其编码为从%20Race%20limit%203中选择%20itemName%28%29%20-当然,在签名之前添加所有其他属性 当我将SELECT limit更改为1而不是3时,它将编码为SELECT%20itemName%28%29%20从%20Race%20limit%201,并且当我向AWS提交查

在发送SELECT请求时,我遇到了AWS SimpleDB签名问题,我被难住了。最糟糕的是,它的表现似乎不一致

当我选择下面的选项时,它很好,工作非常完美: 从竞赛限制3中选择itemName 其编码为从%20Race%20limit%203中选择%20itemName%28%29%20-当然,在签名之前添加所有其他属性

当我将SELECT limit更改为1而不是3时,它将编码为SELECT%20itemName%28%29%20从%20Race%20limit%201,并且当我向AWS提交查询时,签名不匹配其他所有内容都相同

我的理论是,最后四个字符被读取为%201,而不是%20后跟1-这可能吗?如果是这样,是否可以对其进行编码

我的理论是,最后四个字符被解读为%201 而不是20%后面跟着1-这可能吗?如果是,是吗 可以对它进行编码吗

你的理论是正确的。试着这样做:


从竞赛限制1中选择itemName它编码为从%20Race%20limit%20%31中选择%20itemName%28%29%20

这不是编码问题-在%后面只能有两个字符,因此AWS将其视为%20和1。问题是,将结果限制为1会迫使AWS在响应中包含分页令牌。限制为3没有返回令牌只有3个结果


我使用的CoronasSDK软件似乎在包含令牌时被内容阻塞了,只是没有将其提供回我的应用程序。

谢谢@stiabhan-刚刚尝试过,但它没有解决相同的签名匹配问题-AWS似乎不喜欢我编码数字之类的东西,它不希望我编码。我不明白评论的理由,你的理论是正确的。为什么它是正确的?如何解释%203和%201之间的行为差异?您使用的是V4身份验证机制还是V2?