我在发送SELECT请求时遇到了AWS SimpleDB签名问题而且我很难过。最糟糕的是,它似乎表现不一致。
当我选择如下时,它很好并且完美地工作:
select itemName() from Race limit 3
编码为select%20itemName%28%29%20from%20Race%20limit%203
- 当然在签名之前添加所有其他属性。
当我将SELECT限制更改为1(而不是3)select itemName() from Race limit 1
时,它将编码为select%20itemName%28%29%20from%20Race%20limit%201
,并且当我向AWS提交查询时,签名不匹配(其他所有内容都相同)。< / p>
我的理论是,最后四个字符被读作%201而不是%20后跟1 - 这可能吗?如果是这样,是否有可能围绕它进行“编码”?
答案 0 :(得分:0)
我的理论是,最后四个字符被读作%201 而不是%20后跟1 - 这可能吗?如果是的话,是吗? 可能围绕它“编码”?
你的理论是正确的。尝试这样的事情:
从种族限制1中选择itemName(),将其编码为选择%20itemName%28%29%20来自%20Race%20limit%20%31
答案 1 :(得分:0)
我已经到底了...
这不是编码问题 - 在%之后只能有两个字符,因此AWS将其视为%20和1.问题是将结果限制为1强制AWS包含分页响应中的令牌。限制为3没有返回令牌(只有3个结果)。
似乎我使用的软件(CoronaSDK)在包含令牌并且没有将其提供给我的应用程序时会对内容造成阻塞。