CusAccessObjectUtil.java 3.9 KB
package org.theyeasy.weixin.util;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.activemq.console.Main;

import com.alibaba.fastjson.JSONObject;
import com.w1hd.zzhnc.util.CommonUtil;
import com.w1hd.zzhnc.util.JsonMapper;

public class CusAccessObjectUtil {
	public static String getIpAddress(HttpServletRequest request) {
		String ip = request.getHeader("x-forwarded-for");
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("WL-Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("HTTP_CLIENT_IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("HTTP_X_FORWARDED_FOR");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getRemoteAddr();
		}
		return ip;
	}

	public static String getIpCity(HttpServletRequest request) {
		String sendGet = CommonUtil.sendGet("http://ip.taobao.com/service/getIpInfo.php?ip=", getIpAddress(request));
		JSONObject json = JSONObject.parseObject(sendGet);
		if (json.containsKey("city")) {
			return json.get("city").toString();
		}
		return null;

	}

	public static String getCityName(double lng, double lat) {
		JSONObject jsonObject = locationResult(lng, lat);
		JSONObject jsonObject2 = jsonObject.getJSONObject("addressComponent");
		String string = jsonObject2.getString("city");
		System.out.println(string);
		return string;
	}

	public static JSONObject locationResult(double lng, double lat) {
		if (lng == 0 || lat == 0)
			return null;
		String result = WxMiniUtil.getAddress(lat + "", lng + "");

		// String s =
		// CommonUtil.sendGet("http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="
		// + lat
		// + "," + lng + "&output=json&pois=1&ak=j6opW8N1iVvrkOPtEYNGMNH5nu3GbBhT",
		// null);
		// String substring = s.substring(0, s.length() - 1);
		// System.out.println(s);
		// if (substring.contains("限制访问")) {
		// s =
		// CommonUtil.sendGet("http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="
		// + lat + ","
		// + lng + "&output=json&pois=1&ak=QjspiUqEwnqdEvsVsdse9yGDj8QoCCub", null);
		// substring = s.substring(0, s.length() - 1);
		// }
		// String replace = substring.replace("renderReverse&&renderReverse(", "");
		JSONObject parse = (JSONObject) JSONObject.parse(result);
		if (parse.getInteger("status") == 302) {

		}
		JSONObject jsonObject = parse.getJSONObject("result");
		return jsonObject;
	}

	public static String getProvince(double lng, double lat) {
		JSONObject jsonObject = locationResult(lng, lat);
		// JSONObject jsonObject2 = jsonObject.getJSONObject("result");
		String string = jsonObject.getString("province");
		return string;
	}

	public static String getProvince(JSONObject jsonObject) {
		if (jsonObject == null) {
			return null;
		}
		String string = jsonObject.getString("province");

		return string;
	}

	public static String getCity(JSONObject jsonObject) {
		if (jsonObject == null) {
			return null;
		}
		String string = jsonObject.getString("city");
		return string;
	}

	public static String getDistrict(JSONObject jsonObject) {
		if (jsonObject == null) {
			return null;
		}
		String string = jsonObject.getString("district");
		return string;
	}

	public static String getFormattedAddress(JSONObject jsonObject) {
		if (jsonObject == null) {
			return null;
		}
		return jsonObject.getString("address");
	}

	public static void main(String[] arg) {
		JSONObject json = CusAccessObjectUtil2.locationResult(114.061501, 22.542600);
		System.out.println(CusAccessObjectUtil2.getFormattedAddress(json));
		System.out.println(CusAccessObjectUtil2.getProvince(json));
		System.out.println(CusAccessObjectUtil2.getCity(json));
		System.out.println(CusAccessObjectUtil2.getDistrict(json));
	}
}