开发者社区> 问答> 正文

阿里云短信 不支持特殊字符参数值吗?

您好,有种情况, 使用阿里云短信,传递参数值时,里面不能包含特殊字符('+'), 否则报 签名失败 错误,但其他特殊字符('()','_')却可以,请问下 这是怎么回事????

错误: Message":"Specified signature is not matched with our calculation

展开
收起
凌乱的发型 2016-12-21 16:46:22 3894 0
2 条回答
写回答
取消 提交回答
  • 我也发现这个问题了 不能有‘(’ ‘)’ 这样的字符,坑的我调试了好几天,才发现

    2020-09-14 14:36:05
    赞同 展开评论 打赏
  • StringToSign的计算步骤如下:
    1) 按照参数名称的字典顺序对请求中所有的请求参数(包括文档中描述的“公共请求参数”和给定了的请求接口的自定义参数,但不能包括“公共请求参数”中提到 Signature 参数本身)进行排序。
    2) 对每个请求参数的名称和值进行URL编码。
    3) 对编码后的参数名称和值使用英文等号(=)进行连接
    4) 再把英文等号连接得到的字符串按参数名称的字典顺序依次使用&符号连接,即得到规范化请求字符串。
    5) 使用上一步构造的规范化字符串按照下面的规则构造出StringToSign,规则如下:
    StringToSign=

    HTTPMethod + “&” +
    percentEncode(“/”) + ”&” +
    percentEncode(CanonicalizedQueryString) 
    

    注意:构造StringToSign时需要对规范化的字符串做Encode。

    2019-07-17 20:35:52
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载