该方法获取所有关注公共账号的微信用户的openId集合, 再通过openId集合既可以获取所有的用户的信息。
/**
* 获取所有的关注用户
*
* @return
*/
public List getAllWeiXinUser() {
GetExistAccessToken getExistAccessToken = GetExistAccessToken.getInstance();
String accessToken = getExistAccessToken.getExistAccessToken();
List openIds = new ArrayList();
// 上传文件请求路径
String action = "https://api.weixin.qq.com/cgi-bin/user/get?access_token="
+ accessToken;
try {
URL urlGet = new URL(action);
HttpURLConnection http = (HttpURLConnection) urlGet
.openConnection();
http.setRequestMethod("GET"); // 必须是get方式请求
http.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
http.connect();
InputStream is = http.getInputStream();
int size = is.available();
byte[] jsonBytes = new byte[size];
is.read(jsonBytes);
String result = new String(jsonBytes, "UTF-8");
JSONObject jsonObj = new JSONObject(result);
System.out.println("users" + jsonObj.get("data"));
JSONObject json1 = new JSONObject(jsonObj.get("data").toString());
System.out.println(json1.toString());
JSONArray json2 = new JSONArray(json1.get("openid").toString());
for (int i = 0; i < json2.length(); i++) {
openIds.add(i, json2.getString(i));
}
} catch (Exception e) {
e.printStackTrace();
}
return openIds;
}