zoukankan      html  css  js  c++  java
  • 调用高德地图,通过获取的区域名称得到行政区域详情

    一、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));
    }
    }


  • 相关阅读:
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 88怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 81.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 40怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 24.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 21.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器试运行提示过速度保护怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器如何执行绝对值清零
    倍福TwinCAT(贝福Beckhoff)基础教程 松下绝对值驱动器如何做初始化设置
    倍福TwinCAT(贝福Beckhoff)基础教程 松下官方软件开启报错伺服未就绪怎么办
    JAVA Eclipse 启动 Eclipse 弹出“Failed to load the JNI shared library jvm_dll”怎么办
  • 原文地址:https://www.cnblogs.com/xiaoshenke/p/11726217.html
Copyright © 2011-2022 走看看