第三方API的简单调用
调用高德地图(amap)的web服务API
进入网站:http://lbs.amap.com/api/webservice/summary/
申请key需求:根据ip地址定位和拿到定位地方的天气
应用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的简单调用相关推荐
- 淘宝api的简单调用
转载自:http://blog.csdn.net/wxwzy738/article/details/17161895 淘宝开放平台的地址:http://open.taobao.com/doc/deta ...
- 天地图,js 4.0 api,简单调用,高手请绕行
本文介绍使用天地图 js4.0 api,实现地图显示后台gps分布情况: 主要借用H5 GPS获取,利用天地图的背景展示: 效果图如下: 第一步,通过采集网页,手机gps数据,录入后台数据库:界面如下 ...
- 百度统计 api java_java简单调用百度统计API实现后台展示统计数据
今天突然想调百度统计的API,然后实现后台查看百度统计的数据. 于是花了一段时间做了这个功能,本身很简单,但是用到了fastjson与string字符串之间进行互转,还有各种取值,很头痛,没能实现,最 ...
- 百度翻译API的简单调用
翻译API HTTP地址 http://api.fanyi.baidu.com/api/trans/vip/translate 您需要向该地址通过POST或GET方法发送下列字段来访问服务 字段名 类 ...
- 违章查询API的简单调用
api地址:车首页 这个是免费api,可能是服务器不太稳定吧,经常请求不到数据,不过能用就行吧 坑之一:car_info拼接的时候需要在 首尾加上 {} $info = '{hphm=' . $hph ...
- 简单介绍如何调用第三方API
大家好,我是IT修真院武汉分院第15期学员,一枚正直善良的JAVA程序员. 今天给大家分享一下,java学习中需要使用的第三方API的调用 1.背景介绍 API(Application Program ...
- python实现简单的api接口-简单实现Python调用有道API接口(最新的)
# ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...
- java 对第三方的异常_Java第三方API调用打开文件方法时抛出异常
想用Java写一个音乐播放器,使用了Javazoom里的第三方API,调用打开文件的方法open(File file)时,抛出了IOException:Resetting to invalid mar ...
- 关于百度AI 图像识别 人体识别 调用API的简单实践
title: 关于百度AI 图像识别 人体识别 调用API的简单实践 author: HardyDragon tags: 图像识别 有关图像识别 来到控制台创建相关应用,有一些API每天有免费的调用次 ...
- 多线程调用第三方API接口
public void ThreadDemo() {//集合 相当于请求内容List<String> list = new ArrayList<String>();list.a ...
最新文章
- 清华镜像源地址_PyCharm安装第三方库(内含添加国内镜像源方法)
- RXThink 官方网站正式上线
- Cisco测试命令和TCP/IP连接故障处理
- android 背景切换动画效果代码,在Android应用中以模糊效果设置背景图片
- CSS3中display属性的Flex布局
- 股票中买1、买2、买3和卖1、卖2、卖3
- 1152Google Recruitment
- 如何在CentOS 7上安装Varnish Cache
- Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)
- Mac 配置MySQL环境变量
- 3dmax Maxscript 回调脚本异常
- python深度学习pdf_Python深度学习
- iOS数据持久化设计探讨(NSCache,PINCache,YYCache,CoreData,FMDB,WCDB,Realm)
- python三国演义人物出现次数_Python分析《三国演义》人物出场次数,孔明第二,赵云第五...
- Oracle EBS 笔记8
- 迈巴赫S480升级原厂H17全车钢琴木饰板,五座改四座,电动后门
- Android图片不规则裁剪
- 【软件工具】Pycharm社区版安装ChatGPT!
- 如何编写makefile
- 4款一眼万年的精品软件,免费又好用,可惜很多人不知道
热门文章
- Cisco 路由器作业1.1 路由器初始化配置
- Jupyter notebook系列(2):使用技巧(快捷键,多行输出,多光标操作,Unix系统命令的使用,查看输入输出历史,保存记录点与分享,抑制文末输出,图片输出,多环境kernel切换)
- 【数值优化之线搜索方法】
- mybatis三表联合查询
- 中嘉城湖靠谱国有企业要为实现人民对美好生活的向往不断奋斗
- 菜鸟笔记——html整理
- 毕业论文格式(图片题注引用,表格,公式格式)
- linux罗马数字1到10怎么打,罗马数字怎么打
- 智能AI源码机器人电销机器人智能电话机器人拨号机器人语音机器人
- NLTK09《Python自然语言处理》code08 分析句子结构