前言:
写本篇文章是为连续调用web api 的应用说明。
连续请求在很多App中都经常会被使用,例如通过定位获得当前定位城市的天气预报,我们首先要通过Android为我们提供的Api调用GPS获得我们当前的经纬度,然后将经纬度转换成具体的城市名称,再将城市名称传入获取天气预报的请求中。
附上百度web 接口说明
百度地图web服务api
使用百度的对外开放的web api
百度地图Web服务API为开发者提供http接口,即开发者通过http形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。
在此使用到了百度的Geocoding Api
百度web Geocoding API
Geocoding API 是一类接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# 、C++、Java等开发语言发送请求且接收JSON、XML的返回数据。
json示例:
http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=39.983424,116.322987&output=json&pois=1&ak=您的ak
如:
返回结果:{“status”:102,”message”:”MCODE参数不存在,mobile类型mcode参数必需”}
原因是必须传入mcode。 mcode参数就是安全码,SHA1+包名
反Geocoding车联网API
前面的web api 放回的数据太复杂,后来有发现了这个api
百度web 天气查询api
碰到的其他问题
在apk中调用发现错误(浏览器中调用正常)
{"status":220,"message":"APP Referer校验失败"}
我在android apk中调用百度的web api老是报错
错误内容是:{"status":220,"message":"APP Referer校验失败"}
在pc浏览器中调用正常;在手机浏览器中调用也正常,就是在android 的app中调用老师报错,求解答
网友解答
只有该白名单中的网站才能成功发起调用
格式:.mysite.com,myapp.com 多个域名之间请用英文半角逗号隔开
如果不想对任何域名做限制,设置为英文半角星号*
新申请的Mobile类型的ak与新申请的Browser类型的ak不再支持云存储接口的访问,如要使用云存储,请申请server类型ak
结果无论申请服务类型还是browser 类型都报错
{"status":240,"message":"APP 服务被禁用"}