您的位置:首页 > 其它

天气API真是他妈反人类啊

2014-03-31 17:36 225 查看

天气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 的算法如下:

(1) get 请求

url 中 http://域名{uri}
basicString = uri

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码错误.这到底是哪里错啊???已经浪费一个下午调试了.
傻逼百度,傻逼新浪,傻逼中国天气网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: