springboot中用RestTemplate调用百度ip定位服务
来源:互联网 发布:图论与网络优化 pdf 编辑:程序博客网 时间:2024/06/13 07:17
项目中做一个地区定位功能,选用的是百度ip定位服务: http://lbsyun.baidu.com/index.php?title=webapi/ip-api
关于百度ip定位服务的介绍以及用法可以在这个链接中找到,主要做的就是开通应用服务以及拿到AK。
我开通的是服务端的应用服务,所以我是通过java代码向百度定位服务发起调用。
java中发起http协议的请求方式有很多种,像jdk自带的URLConnection,以及Apache Jakarta Common中的HttpClient。我以前多是采用HttpClient方式。
偶然中发现了spring-web包中的一个叫做RestTemplate的类,算是spring对客户端请求调用的一种封装实现,默认采用URLConnection方式,当然,你也可以采用HtppClient作为它的实现方式。在这里不做对它的过多介绍,有兴趣可以看下它的源码。
代码实现:
百度ip定位返回值:
针对返回值,我们封装一个实体用于接收。
public class Jsonr {private String address;private JsonContent content;private int status;public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public JsonContent getContent() {return content;}public void setContent(JsonContent content) {this.content = content;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}}
将restTemplate注册成bean ,方便我们注入使用
@Configurationpublic class RestTemplateConfig {@Beanpublic RestTemplate getRestTemplate(ClientHttpRequestFactory factory){return new RestTemplate(factory);}@Beanpublic ClientHttpRequestFactory getSimpleClientHttpRequestFactory(){SimpleClientHttpRequestFactory fac = new SimpleClientHttpRequestFactory(); fac.setReadTimeout(3000); fac.setConnectTimeout(10000); return fac;}}注入调用,并编写相关业务方法。
@Resourceprivate RestTemplate restTemplate;public String getMemberAddress(String ip){if(StringUtils.isEmpty(ip)){return "北京市";}Jsonr r = restTemplate.getForObject(Const.BDIPURL+"?ip="+ip+"&ak="+Const.BDAK, Jsonr.class);if(r!=null){switch (r.getStatus()) {case 0:return r.getContent().getAddress_detail().getCity();case 2: System.out.println("参数不合法"); return "北京市";case 210: System.out.println("APP IP校验失败 "); return "北京市";case 200: System.out.println("APP不存在,AK有误请检查再重试 "); return "北京市";case 101: System.out.println("AK参数不存在 "); return "北京市";case 260: System.out.println("服务不存在"); return "北京市";case 261: System.out.println("服务被禁用 "); return "北京市"; default:return "北京市"; }}return "北京市";}
阅读全文
1 0
- springboot中用RestTemplate调用百度ip定位服务
- java根据ip地质调用百度定位api服务获取地理位置示例
- java根据ip地质调用百度定位api服务获取地理位置示例
- SpringBoot通过restTemplate实现消费服务
- 通过RestTemplate调用外部服务
- springboot-restTemplate
- 通过RestTemplate调用外部服务(高德API查IP所在地)
- 用RestTemplate调用百度文字识别接口
- 用百度高精度IP定位服务返回当前地理位置
- java RestTemplate调用远程服务接口
- 使用RestTemplate来构建远程调用服务
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- java调用百度定位api服务获取地理位置示例
- 百度ip地址定位
- 结果集映射,一些标签的用法
- springboot打war包部署到外部tomcat报错 parseWebXml Parse error
- 基本概念
- 函数传参—价格计算
- Mysql索引类型
- springboot中用RestTemplate调用百度ip定位服务
- ptmalloc
- 1.管理的含义
- Swift减少print函数的耗费
- 淘淘商城系列——单点登录之用户注册页面实现
- ipython notebook使用教程
- C语言中的 i++ 和 ++i 的区别
- 【Netty入门】几种序列化协议的介绍
- FAFU OJ 求a到b内的元素和