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

此工具为本人项目中所用,拿来即用,可使用postman接口调试工具来测试:

一、pom文件:


4.0.0

com.java.gaode.GaoDeDemo
GaoDeDemo
1.0-SNAPSHOT
com.google.collectionsgoogle-collections1.0com.google.guavaguava20.0commons-httpclientcommons-httpclient3.1org.apache.commonscommons-lang33.8.1org.apache.httpcomponentshttpclient4.5.9com.alibabafastjson1.2.31com.sun.jerseyjersey-client1.19.1org.slf4jslf4j-api1.7.28org.springframeworkspring-core5.1.10.RELEASEorg.springframeworkspring-webmvc5.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, Map params) {
      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, Map param) {
      try {
      Client client = Client.create();
      URI u = new URI(url);
      WebResource resource = client.resource(u);
      MultivaluedMap params = 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”;
    Map 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));
    

    }
    }

本人因为工作繁忙,每周都会抽一次时间,把自己在项目中使用的技术更加分享,志同道合的朋友可以加我扣扣,863967089,备注博客。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部