您的位置:首页 > 其它

jeesite作为后台,用ip定位的功能

2016-05-10 15:59 225 查看
public class AreaUtils {

  @Autowired

  private AreaService areaService;

  public List<Area> IpDingWei(HttpServletRequest request) throws IOException {

  //运用淘宝Ip定位,region_id  StringUtils.getRemoteAddr(request)  123.232.172.54

    String url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + "123.232.172.54";

    JSONObject json = readJsonFromUrl(url);

    String city_id = (String) json.getJSONObject("data").get("city_id");

    Area a = new Area();

    a.setCode(city_id);

    List<Area> area = areaService.findList(a);

    return area;

  }

 

  private static String readAll(Reader rd) throws IOException {

    StringBuilder sb = new StringBuilder();

    int cp;

    while ((cp = rd.read()) != -1) {

      sb.append((char) cp);

    }

    return sb.toString();

  }

 

  public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {

    InputStream is = new URL(url).openStream();

    try {

      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));

      String jsonText = readAll(rd);

      JSONObject json = JSONObject.fromObject(jsonText);

      return json;

    } finally {

      is.close();

      // System.out.println("同时 从这里也能看出 即便return了,仍然会执行finally的!");

    }

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: