SpringBoot调用高德地图IP定位API (RestTemplate)

前言

各位读者好久不见,由于最近都在摸鱼 尝试校招和准备明年的春招,所以这一个多月都没在写博客。言归正传,最近手头一个项目有一个要求,要求记录访问者的ip信息和访问的页面等信息,所以我采用了高德地图的IP定位API。

高德地图IP定位API
https://lbs.amap.com/api/webservice/guide/api/ipconfig/

正文

在这里其实有如下两种选择:

  1. 工具类的方式,在需要使用的接口处调用工具类
  2. 自定义注解+AOP的方式,在方法上添加自定义注解实现功能

经过效率的权衡最终选择了方法一,也就是工具类的实现方式。

了解API接口

使用该接口之前请先前往官网申请一个key!该key每日限定请求次数为300k,200QPS
通过官方文档我们了解了接口以及相应的请求方法、请求参数、返回结果等信息
在这里插入图片描述
在这里插入图片描述

编写代码

完成依赖注入

在这里我们要注意一个很重要的点就是,我们在请求外部API时务必设置超时时间,以免长时间的等待导致服务器被堵死。
在本项目中我们使用了SpringBoot提供的RestTemplate对接口发送请求,首先我们新建一个IpUtil工具类,并设置RestTemplate的超时时间如下
在这里插入图片描述
我们设置了请求的URL和我们的key,并通过SimpleClientHttpRequestFactory 对我们请求的超时时间设置为3s,这样可以有效避免由于出现网络波动导致长时间堵塞。

获取用户IP

private String getUserIp(HttpServletRequest req) {
   
        String ip = req.getHeader("X-Forwarded-For");
        if (ip == null || ip.
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值