前言
百度地图Web服务API为开发者提供http/https接口,即开发者通过http/https形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。
需求背景
项目中有一功能要求将经纬度转换为详细的位置信息和将位置信息转换为经纬度。采用百度地图正/逆级地理编码接口完成此功能。
问题发现
看似乎按照官方文档要求操作后,一波运行后心灰意冷。只能先将SN校验换成IP白名单完成功能后再来解决,现将网络上的一些解决方案记录下来。
解决指南
第一种:看清楚API是否支持sn校验
在网上看到有老哥没仔细看自己的API是否支持sn校验也在一顿操作,结果导致报校验失败。
第二种:看下自己传参是否正确
必填参数一个都不能少,按官方文档要求传参。包括自己的ak和sk是否正确,别把值传反了。
第三种:看下sn计算算法是否和文档一致
我在网上找了很多说是因为逗号转义的时候有问题,可能是之前版本确实有这个问题。
最新版本根本不需要改变代码,直接CV大法就可以了。不明白的再回去仔细看下sn算法。
第三种:最终解决办法
如果你发现自己前三种方法都没问题。那就认真仔细的把我这段话多读几遍:
- 看下自己传的参数顺序是否正确。
- 参数确认没问题后看下自己的url路径是否有问题:每一个标点符号都会生成错误的sn导致 “sn校验失败”。
小编就是url少了一个 / 导致"sn校验失败"。细节决定成败,一定要有耐心,这玩意是真不好找。