调用高德地图(amap)的web服务API

  1. 进入网站:http://lbs.amap.com/api/webservice/summary/
    申请key

  2. 需求:根据ip地址定位和拿到定位地方的天气

  1. 应用springmvc技术,具体实现:
    (1) 导包:

    (2) 在类似于spring.xml作用的类中配置:

@Beanpublic RestTemplate restTemplate() {// 使用apache hc HttpClient库来负责底层请求发送ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();RestTemplate rt = new RestTemplate(requestFactory);//类型转换器  json 与 任何类型之间的转换List<HttpMessageConverter<?>> messageConverters = Arrays.asList(new MappingJackson2HttpMessageConverter());rt.setMessageConverters(messageConverters);return rt;}

(3) 具体地图的service层:由于高德返回的是json格式的数据,我们接收数据是定义一个类来接收,这个类的属性与返回数据的json字段要相同。上面代码中用到了一个数据类型的转换器。

@Service
public class AmapServiceImpl implements AmapService {@Autowiredprivate RestTemplate restTemplate;/*@Autowiredprivate Environment env;*/@Overridepublic AmapLocation getLocation(String ip) {//String key = env.getProperty("ipkey");  将key存于key.properties文件中String key = "c2cf7f844d01074663b4ccf33dfb2fb2";AmapLocation amapLocation = restTemplate.getForObject("http://restapi.amap.com/v3/ip?key={key}"+ "&ip={ip}", AmapLocation.class,key,ip);return amapLocation;//第一个参数为 请求的地址,二个为接收的数据类型,三,四是参数的替代}
}

(4) 具体的天气service层:
实际代码跟上面的差不多,不同的是IP定位用的是类接收数据,因为网页上请求返回json数据只有一个层次,而天气有两个层次。

封装数据的实体类为:

public class Weather {private List<Content> lives;//Content类中为具体天气的属性public List<Content> getLives() {return lives;}public void setLives(List<Content> lives) {this.lives = lives;}
}

(5) 控制类:

@Controller
public class AmapController {@Autowiredprivate AmapService amapService;@Autowiredprivate WeatherService weatherService;@RequestMapping(method = RequestMethod.GET,value="/location")public String getAmapLocation(Model model,@RequestParam(required = false)String ip){//@RequestParam(required = false)获取页面传过来的参数,可有可无if(null!=ip){//获取地址AmapLocation amapLocation = amapService.getLocation(ip);model.addAttribute("location", amapLocation);model.addAttribute("ip", ip);//用ip定位返回的地址的adcode码来获取天气System.out.println(amapLocation);String adcode = amapLocation.getAdcode();System.out.println(adcode);Weather w = weatherService.getWeather(adcode);System.out.println("weather"+w);model.addAttribute("weather", w);return "amaplocation";}return "amaplocation";}
}

(6) 过程比较简单,得益于spring的支持。

第三方API的简单调用相关推荐

  1. 淘宝api的简单调用

    转载自:http://blog.csdn.net/wxwzy738/article/details/17161895 淘宝开放平台的地址:http://open.taobao.com/doc/deta ...

  2. 天地图,js 4.0 api,简单调用,高手请绕行

    本文介绍使用天地图 js4.0 api,实现地图显示后台gps分布情况: 主要借用H5 GPS获取,利用天地图的背景展示: 效果图如下: 第一步,通过采集网页,手机gps数据,录入后台数据库:界面如下 ...

  3. 百度统计 api java_java简单调用百度统计API实现后台展示统计数据

    今天突然想调百度统计的API,然后实现后台查看百度统计的数据. 于是花了一段时间做了这个功能,本身很简单,但是用到了fastjson与string字符串之间进行互转,还有各种取值,很头痛,没能实现,最 ...

  4. 百度翻译API的简单调用

    翻译API HTTP地址 http://api.fanyi.baidu.com/api/trans/vip/translate 您需要向该地址通过POST或GET方法发送下列字段来访问服务 字段名 类 ...

  5. 违章查询API的简单调用

    api地址:车首页 这个是免费api,可能是服务器不太稳定吧,经常请求不到数据,不过能用就行吧 坑之一:car_info拼接的时候需要在 首尾加上 {} $info = '{hphm=' . $hph ...

  6. 简单介绍如何调用第三方API

    大家好,我是IT修真院武汉分院第15期学员,一枚正直善良的JAVA程序员. 今天给大家分享一下,java学习中需要使用的第三方API的调用 1.背景介绍 API(Application Program ...

  7. python实现简单的api接口-简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  8. java 对第三方的异常_Java第三方API调用打开文件方法时抛出异常

    想用Java写一个音乐播放器,使用了Javazoom里的第三方API,调用打开文件的方法open(File file)时,抛出了IOException:Resetting to invalid mar ...

  9. 关于百度AI 图像识别 人体识别 调用API的简单实践

    title: 关于百度AI 图像识别 人体识别 调用API的简单实践 author: HardyDragon tags: 图像识别 有关图像识别 来到控制台创建相关应用,有一些API每天有免费的调用次 ...

  10. 多线程调用第三方API接口

    public void ThreadDemo() {//集合 相当于请求内容List<String> list = new ArrayList<String>();list.a ...

最新文章

  1. 清华镜像源地址_PyCharm安装第三方库(内含添加国内镜像源方法)
  2. RXThink 官方网站正式上线
  3. Cisco测试命令和TCP/IP连接故障处理
  4. android 背景切换动画效果代码,在Android应用中以模糊效果设置背景图片
  5. CSS3中display属性的Flex布局
  6. 股票中买1、买2、买3和卖1、卖2、卖3
  7. 1152Google Recruitment
  8. 如何在CentOS 7上安装Varnish Cache
  9. Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)
  10. Mac 配置MySQL环境变量
  11. 3dmax Maxscript 回调脚本异常
  12. python深度学习pdf_Python深度学习
  13. iOS数据持久化设计探讨(NSCache,PINCache,YYCache,CoreData,FMDB,WCDB,Realm)
  14. python三国演义人物出现次数_Python分析《三国演义》人物出场次数,孔明第二,赵云第五...
  15. Oracle EBS 笔记8
  16. 迈巴赫S480升级原厂H17全车钢琴木饰板,五座改四座,电动后门
  17. Android图片不规则裁剪
  18. 【软件工具】Pycharm社区版安装ChatGPT!
  19. 如何编写makefile
  20. 4款一眼万年的精品软件,免费又好用,可惜很多人不知道

热门文章

  1. Cisco 路由器作业1.1 路由器初始化配置
  2. Jupyter notebook系列(2):使用技巧(快捷键,多行输出,多光标操作,Unix系统命令的使用,查看输入输出历史,保存记录点与分享,抑制文末输出,图片输出,多环境kernel切换)
  3. 【数值优化之线搜索方法】
  4. mybatis三表联合查询
  5. 中嘉城湖靠谱国有企业要为实现人民对美好生活的向往不断奋斗
  6. 菜鸟笔记——html整理
  7. 毕业论文格式(图片题注引用,表格,公式格式)
  8. linux罗马数字1到10怎么打,罗马数字怎么打
  9. 智能AI源码机器人电销机器人智能电话机器人拨号机器人语音机器人
  10. NLTK09《Python自然语言处理》code08 分析句子结构