[吐槽]困扰了1周的API调用失败问题的原因是使用了加密DNS
参考API的官方文档使用postman测试了一下,导入了百度提供的postman环境配置文件,粘贴提供的预处理代码后直接发起请求,响应里提示 "signature is empty",一看代码发现添加到请求头的参数key名是"Authorization",用于控制百度云服务器BCC的🤣。换成了"X-Bce-Signature"再次发送请求,响应"Signature is mismatched"签名值不匹配,看懵了🤣。对比百度线上调试端发送的请求时胡乱猜测可能缺个值为请求生成时间的键值对(然而生成的签名字符串里已经包含了生成时间的明文🤣),试着写了代码把时间添加到请求头之后果然还是提示这个问题。再回头看了文档和视频(仔细学了一遍),感觉发送的请求确实没有缺失什么内容。于是怀疑是不是网络原因,换了114 DNS后还真就好了🤣。
使用的API信息>> 全国空气质量指数城市排行榜_天文气象_API商城