package cn.wisenergy.service.util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import java.util.*; public class WxUtil { public static Map<String,Object> getInfoByCode(String code,String appid,String key) { StringBuilder url = new StringBuilder("https://api.weixin.qq.com/sns/jscode2session?"); url.append("appid=").append(appid);//appid设置 url.append("&secret=").append(key);//secret设置 url.append("&js_code=").append(code);//code设置 url.append("&grant_type=authorization_code"); Map<String, Object> map = null; try { HttpClient client = HttpClientBuilder.create().build();//构建一个Client HttpGet get = new HttpGet(url.toString()); //构建一个GET请求 HttpResponse response = client.execute(get);//提交GET请求 HttpEntity result = response.getEntity();//拿到返回的HttpResponse的"实体" String content = EntityUtils.toString(result); JSONObject res = JSONObject.parseObject(content); map=parseJSON2Map(res); } catch (Exception e) { e.printStackTrace(); } System.out.println("code解析数据:"+map); return map; } //JSONObject转map public static Map<String, Object> parseJSON2Map(JSONObject json) { Map<String, Object> map = new HashMap<>(); // 最外层解析 for (Object k :json.keySet()) { Object v = json.get(k); // 如果内层还是数组的话,继续解析 if (v instanceof JSONArray) { List<Map<String, Object>> list = new ArrayList<>(); for (Object o : (JSONArray) v) { JSONObject json2 = (JSONObject) o; list.add(parseJSON2Map(json2)); } map.put(k.toString(), list); } else { map.put(k.toString(), v); } } return map; } }