JAVA微信开发:[17]如何获取所有关注用户

该方法获取所有关注公共账号的微信用户的openId集合, 再通过openId集合既可以获取所有的用户的信息。  

/**

    * 获取所有的关注用户

    * 

    * @return

    */

   public  List<String> getAllWeiXinUser() {

       GetExistAccessToken getExistAccessToken = GetExistAccessToken.getInstance();

       String accessToken = getExistAccessToken.getExistAccessToken();

       List<String> openIds = new ArrayList<String>();

       // 上传文件请求路径

       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;

   }

posted @ 2016-09-29 09:31  专注it  阅读(649)  评论(0编辑  收藏  举报