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需要验证,出错又查看提示的习惯
  • 相关阅读:
    美国godaddy服务器,生成html网页出错,Microsoft VBScript runtime error '800a0005'
    Socket 错误一览表
    用php\asp创建 网页桌面快捷方式
    xp sp3 + ie8 支付宝证书 导入出错以及安全验证身份出错 解决办法
    Windows Server 2008正式版激活方法(2009年6月26日更新)
    子网掩码表示 255.255.255.0/24
    局域网中2台无线路由器联接配置方法
    firebug不能断点调试压缩后的js文件问题
    php正则匹配 <div></div>
    apache2 子目录forbidden问题
  • 原文地址:https://www.cnblogs.com/xiaoping1993/p/7595749.html
Copyright © 2011-2022 走看看