调用高德地图,通过获取的区域名称得到行政区域详情 - 肖申克save

xiaoshenke 2021-08-05 原文


调用高德地图,通过获取的区域名称得到行政区域详情

一、pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.java.gaode.GaoDeDemo</groupId>
<artifactId>GaoDeDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.28</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
</dependencies>
</project>
二、HttpClientUtil工具类
package com.java.gaode;
/**
* @ClassName: HttpClientUtil
* @Description:
* @Version: v1.0.0
* @Author: Fu Hao
* @Date: 2019/10/22 0022 下午 9:32
* Modification History:
* Date Author Version Description
* -------------------------------------------------------------
* 2019/10/22 0022 Fu Hao v1.0.0 创建
*/
import com.alibaba.fastjson.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import java.io.IOException;
import java.net.URI;
import java.util.*;

/**
* @author
* @Description 请求工具类(HttpClient
* @date 2018/11/16 10:09
*/
@Controller
public class HttpClientUtil {

private static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);

/**
* @Description 发送get请求(带参数)
* @author HeLiu
* @date 2018/11/16 11:02
*/
public static String doGet(String url, Map<String, Object> params) {
if (!StringUtils.hasText(url)) {
return "";
}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
try {
if (params != null && !params.isEmpty()) {
List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
for (String key : params.keySet()) {
pairs.add(new BasicNameValuePair(key, params.get(key).toString()));
}
url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, "UTF-8"));
}
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse response = closeableHttpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
// 判断响应实体是否为空
if (entity != null) {
return EntityUtils.toString(entity, "UTF-8");
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭流并释放资源
closeableHttpClient.close();
} catch (IOException e) {
logger.error(e.toString());
}
}
return null;
}

/**
* @Description 发送post请求(带参数)
* @author HeLiu
* @date 2018/11/16 11:02
*/
public static Map doPost(String url, Map<String, Object> param) {
try {
Client client = Client.create();
URI u = new URI(url);
WebResource resource = client.resource(u);
MultivaluedMap<String, String> params = new MultivaluedMapImpl();

Iterator i$ = param.entrySet().iterator();
while (i$.hasNext()) {
Map.Entry<String, List<String>> e = (Map.Entry) i$.next();
params.add(e.getKey(), String.valueOf(e.getValue()));
}

logger.info("查询参数:" + params.toString());
String result = resource.type(MediaType.APPLICATION_FORM_URLENCODED).post(String.class, params);

logger.info("url = :{},返回结果:{}", url, result);
JSONObject jasonObject = JSONObject.parseObject(result);
return (Map) jasonObject;

} catch (Exception e) {
logger.error("..........", e);
}
return null;
}

}

三、测试
package com.java.gaode;

import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.Map;

/**
* gaode包里的两个方法是根据传来的值查询下一级行政区域的目录详情
* @ClassName: GaoTest
* @Description:
* @Version: v1.0.0
* @Author: Fu Hao
* @Date: 2019/10/22 0022 下午 9:30
* Modification History:
* Date Author Version Description
* -------------------------------------------------------------
* 2019/10/22 0022 Fu Hao v1.0.0 创建
*/
public class GaoTest {
public static void main(String[] args) {
String keyName = "中国";//这里是key名称
String keyCode = "高德官网申请";//这个是秘钥
String admAddress = "https://restapi.amap.com/v3/config/district";
Map<String, Object> params = new HashMap<>();

params.put("key", keyCode);
params.put("keywords", keyName);
params.put("subdistrict", 1);
params.put("extensions", "base");
String result = HttpClientUtil.doGet(admAddress, params);
System.out.println(JSONObject.parse(result));
}
}


发表于
2019-10-23 14:44 
肖申克save 
阅读(1053
评论(0
编辑 
收藏 
举报

 

版权声明:本文为xiaoshenke原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaoshenke/p/11726217.html

调用高德地图,通过获取的区域名称得到行政区域详情 - 肖申克save的更多相关文章

  1. 备份电脑系统的操作 – tlnshuju

    备份电脑系统的操作 2017-06-19 13:02  tlnshuju  阅读(190)  评论(0)  编 […]...

  2. DC-DC转换电路原理,该技术可用在电池充电回路中 – 科技猫

    DC-DC转换电路原理,该技术可用在电池充电回路中 转载自:http://www.eenote.com/?p= […]...

  3. Vue + Element UI 实现权限管理系统 前端篇(十):动态加载菜单

    动态加载菜单 之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的。 […]...

  4. JS获取当前时间并格式化 – 幽默是一种心情

    JS获取当前时间并格式化 1.获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”      f […]...

  5. Appium 简介 – 阳春三月594

    Appium 简介 1、Appium 简介 是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混 […]...

  6. “自恋”的美国奥运金牌榜 – ChrisNiu

    “自恋”的美国奥运金牌榜  闲来无事,看了看Yahoo在全球各大洲的金牌榜,忽然发现美国相当相当的” […]...

  7. 微信小程序录音实现 – DanielWise

    微信小程序录音实现 2018-05-10 17:48  DanielWise  阅读(28095)  评论(1 […]...

  8. Windows Embedded Standard的U盘启动 – 马宁

    作者:马宁 原文:http://tech.it168.com/a2008/1223/260/000000260 […]...

随机推荐

  1. PCL学习(一)从PLY文件读入点云数据

    #include <iostream> #include <pcl/io/pcd_io.h& […]...

  2. Ultraiso软碟通制作u盘启动盘

    第一步: a.准备一个U盘,因为windows iso镜像文件或者linux iso文件一般比较大(3-4GB […]...

  3. Spring Security Oauth2 permitAll()方法小记

    黄鼠狼在养鸡场山崖边立了块碑,写道:“不勇敢地飞下去,你怎么知道自己原来是一只搏击长空的鹰?!” 从此以后 黄 […]...

  4. Spring配置类深度剖析-总结篇(手绘流程图,可白嫖)

    Spring配置类专栏的总结篇,绘制流程图,适合需快速掌握的白嫖党 生命太短暂,不要去做一些根本没有人想要的东 […]...

  5. IBM X3850 Windows 无法安装到这个磁盘。选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘

    以前安装的是window2003 32位, 改装为2012 64位的时候。出现   Windows 无法安装到 […]...

  6. repo 导出本地 git tag 给他人

    背景 使用 repo 管理了多个 git 仓库,有时需要将本地仓库的tag同步给其他人,但又不能直接推到远程( […]...

  7. GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱

    GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企 […]...

  8. JavaScript与WebAssembly进行比较

    本文由云+社区发表 作者:QQ音乐前端团队 在识别和描述核心元素的过程中,我们分享了构建SessionStac […]...

展开目录

目录导航