2017-06-13 10:22:11 0 评论 PHP Boy.Lee

阿里云短信 API 报错 InvalidParamString.MalFormed

使用阿里云短信API发送短信的时候会间歇的获得 400 - InvalidParamString.MalFormed. 经过查询错误代码解释为: The specified paramString is wrongly formed.(短信模板中变量不是json格式), 所以问题出在 ParamString格式

 

{ 分析 }

对Url中传递过去的参数进行核对

// correct
%7B%22code%22%3A%22123456%22%7D

// error
%7B%22code%22%3A123456%7D

 

使用itool 在线URL解密工具(http://itool.yiilib.com/#/t/urlEncode)对其进行Url解密

// correct
{"code":"123456"}

// error
{"code":123456}

 

{ 结果 }

对比发现,在json_encode的时候,123456被当作 整数类型进行了加密,但是标准的json格式所有的项目都需要被双引号包裹,这就是为什么会报错。另外我出现间歇报错的原因是当存入数据库再读取出来以后就是字符串类型,就不会报错了。