zoukankan      html  css  js  c++  java
  • 使用特定功能代码

    1.通过高德api将我国省市区存入数据库

      1)用到的工具类

    package com.ty.tyzxtj.util;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    
    /**
     * http工具类
     * @author wangjiping
     *
     */
    public class HttpUtil {
        // 超时时间
        public static final int TIME_OUT = 50000;
        public static String post(String postUrl){
            String response = "";
            PostMethod postMethod = new PostMethod(postUrl);
            try {
                HttpClient client = new HttpClient();
                client.getHttpConnectionManager().getParams()
                        .setConnectionTimeout(50000);// 设置连接时间
                int status = client.executeMethod(postMethod);
                if (status == HttpStatus.SC_OK) {
                    InputStream inputStream = postMethod.getResponseBodyAsStream();
                    BufferedReader br = new BufferedReader(new InputStreamReader(
                            inputStream));
                    StringBuffer stringBuffer = new StringBuffer();
                    String str = "";
                    while ((str = br.readLine()) != null) {
                        stringBuffer.append(str);
                    }
                    response = stringBuffer.toString();
                } else {
                    response = "fail";
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 释放连接
                postMethod.releaseConnection();
            }
            return response;
        }
        public static String loadJson (String url) {  
            StringBuilder json = new StringBuilder();  
            try {  
                URL urlObject = new URL(url);  
                URLConnection uc = urlObject.openConnection();  
                BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));  
                String inputLine = null;  
                while ( (inputLine = in.readLine()) != null) {  
                    json.append(inputLine);  
                }  
                in.close();  
            } catch (MalformedURLException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
            return json.toString();  
        } 
        public static String get(String url){
            String html = "";
            // 构造HttpClient的实例
            HttpClient httpClient = new HttpClient();
            // 创建GET方法的实例
            GetMethod getMethod = new GetMethod(url);
            // 使用系统提供的默认的恢复策略 不重试
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(0, false));
            getMethod.setRequestHeader("Connection" , "Keep-Alive");
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(TIME_OUT);
            httpClient.getHttpConnectionManager().getParams().setSoTimeout(TIME_OUT);
            try {
                // 执行getMethod
                int statusCode = httpClient.executeMethod(getMethod);
                if (statusCode != HttpStatus.SC_OK) {
                    System.err.println("Method failed: " + getMethod.getStatusLine());
                }
                // 处理内容
                html = getMethod.getResponseBodyAsString();
            } catch (Exception e) {
            } finally {
                // 释放连接
                getMethod.releaseConnection();
            }
            return html;
        }
    }
    View Code

      2)关键代码

    public void autoGetAdCode(String gaodeApi) {
            try {
                String result1 = HttpUtil.get(gaodeApi);
                JSONObject result = JSONObject.parseObject(result1);
                JSONArray provinces =result.getJSONArray("districts").getJSONObject(0).getJSONArray("districts");
                for (Object object : provinces) {//遍历省
                    JSONObject province = JSONObject.parseObject(object.toString());
                    String name = province.getString("name");
                    String level = province.getString("level");
                    String adcode = province.getString("adcode");
                    String center = province.getString("center");
                    regionalStaMapper.insertDivistion(name,level,adcode,center);
                    //省信息存入数据库
                    for (Object object2 : province.getJSONArray("districts")) {//遍历市
                        JSONObject city = JSONObject.parseObject(object2.toString());
                        //市信息存入数据库
                        name = city.getString("name");
                        level = city.getString("level");
                        adcode = city.getString("adcode");
                        center = city.getString("center");
                        regionalStaMapper.insertDivistion(name,level,adcode,center);
                        if(!level.equals("city")){
                            System.out.println(level);
                            continue;
                        }
                        for (Object object3 : city.getJSONArray("districts")) {//遍历区
                            JSONObject district = JSONObject.parseObject(object3.toString());
                            //区信息存入数据库
                            name = district.getString("name");
                            level = district.getString("level");
                            adcode = district.getString("adcode");
                            center = district.getString("center");
                            regionalStaMapper.insertDivistion(name,level,adcode,center);
                        }
                    }
                }
            } catch (Exception e) {
                log.error(e.toString());
                throw new RuntimeException();
            }
            
        }
    View Code
        @Insert("insert into ty_conf_division(adcode,center,level,name) values(#{adcode},#{center},#{level},#{name})")
        Integer insertDivistion(@Param("name")String name, @Param("level")String level, @Param("adcode")String adcode, @Param("center")String center);
    View Code

      3)思路

    通过高德地图api:http://lbs.amap.com/api/webservice/guide/api/district中的
      http://restapi.amap.com/v3/config/district?key=您的key&keywords=中国&subdistrict=3&extensions=base获得所有数据
    注意:可能出现的key需要验证,出错又查看提示的习惯
  • 相关阅读:
    还在使用golang 的map 做Json编码么?
    Golang 性能测试(2) 性能分析
    golang 性能测试 (1) 基准性能测试
    消息队列 NSQ 源码学习笔记 (五)
    消息队列 NSQ 源码学习笔记 (四)
    消息队列 NSQ 源码学习笔记 (三)
    消息队列 NSQ 源码学习笔记 (二)
    消息队列 NSQ 源码学习笔记 (一)
    你不知道的空格
    Supervisor 使用和进阶4 (Event 的使用)
  • 原文地址:https://www.cnblogs.com/xiaoping1993/p/7595749.html
Copyright © 2011-2022 走看看