调用高德地图,通过获取的区域名称得到行政区域详情
此工具为本人项目中所用,拿来即用,可使用postman接口调试工具来测试:
一、pom文件:
4.0.0
com.java.gaode.GaoDeDemo
GaoDeDemo
1.0-SNAPSHOT
com.google.collections google-collections 1.0 com.google.guava guava 20.0 commons-httpclient commons-httpclient 3.1 org.apache.commons commons-lang3 3.8.1 org.apache.httpcomponents httpclient 4.5.9 com.alibaba fastjson 1.2.31 com.sun.jersey jersey-client 1.19.1 org.slf4j slf4j-api 1.7.28 org.springframework spring-core 5.1.10.RELEASE org.springframework spring-webmvc 5.1.10.RELEASE
二、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 *** 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, Mapparams) {
if (!StringUtils.hasText(url)) {
return “”;
}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
try {
if (params != null && !params.isEmpty()) {
List pairs = new ArrayList(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, Mapparam) {
try {
Client client = Client.create();
URI u = new URI(url);
WebResource resource = client.resource(u);
MultivaluedMapparams = new MultivaluedMapImpl(); Iterator i$ = param.entrySet().iterator();while (i$.hasNext()) {Map.Entry> 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 *** 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”;
Mapparams = 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));}
}
本人因为工作繁忙,每周都会抽一次时间,把自己在项目中使用的技术更加分享,志同道合的朋友可以加我扣扣,863967089,备注博客。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
