文档没有说明为第三个参数传递字符串和传递数组之间的区别。我们在阅读 C 源代码找出这两个之间存在重大且未记录的区别之前,花了 2 天时间调试。
"a=1" 和 array("a" => 1) 的处理方式非常不同!
如果您正在进行 POST/PUT 请求(或任何具有实体主体的内容),那么您应该将其作为字符串传递。
如果您正在进行具有查询字符串的请求,则应将其作为关联数组传递。
如果您传递 "a=1" 想要将其指定为查询字符串,那么生成的签名将无效——它将像您 POST 内容 "a=1" 一样处理它。