天气API真是反人类啊
由于Android APP的需要获取天气,在网上搜了一下,发现有这么几个:1.中国天气网的SmartWeather,但是,申请Key需要填写垃圾申请表,我填好了发过去,一个星期没回复,估计是一帮废物在那里,瞧不起人.决定拉黑SB Weather. 2.新浪微博搜到了一个接口,但是...网址根本打不开,这个更傻SB. 3.这个时候还是想起百度,搜了一下就发现车联网有一个API.因为是在Android上用的,所以按照说明文档,获取了应用的签名和包名,应用类型是For mobile,生成了一个AK,然后在应用中请求,发现返回的信息都是错误的.错误码102,论坛一看,有说用for Server的AK这是什么逻辑啊?简直是误导人. 后来申请的时候选择了for server,请求校验方式选择了SN校验方式,获取到了一个AK和SK,然后........按照官方的说明,生成的SN居然也是计算错误的. 我用get请求方式.所以就是按照: 附录1:sn计算算法 sn = MD5(urlencode(basicString + sk)) 其中 basicString 的算法如下:
String basicString = "/telematics/v3/weather"; String sk = "MHGapESdnO8HLNkVWjxQlyhNTAejqjLu"; String afterEncode = URLEncoder.encode(basicString +sk, "utf-8"); String SB_SN = MD5(afterEncode); 这样计算出来了一个SN,构造好的URL请求是: http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=我的AK&sn=我的SN 我按照这样请求,得到的居然是234错误,也就是SN码错误.这到底是哪里错啊???已经浪费一个下午调试了. |
傻逼百度,傻逼新浪,傻逼中国天气网