通过java方式获取微信用户openId

通过java方式获取微信用户openId

1.内网穿透

1.购买隧道

2.进行配置

配置域名,ip和端口。在这里配本地可以访问的服务的ip和端口。

3 下载客户端

3 打开命令行在客户端同级目录执行:natapp -authtoken=xxxxxxxxxx,使隧道服务上线

1.进入系统注册测试账号

3.绑定域名

3.代码实现

4.返回结果

5.总结

6.工具类

public class HttpGetUtil {
          
   

    public static String httpRequestToString(String url, Map<String, String> params) {
          
   
        String result = null;
        try {
          
   
            InputStream is = httpRequestToStream(url, params);
            BufferedReader in = new BufferedReader(new InputStreamReader(is,
                    "UTF-8"));
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = in.readLine()) != null) {
          
   
                buffer.append(line);
            }
            result = buffer.toString();
        } catch (Exception e) {
          
   
            return null;
        }
        return result;
    }

    private static InputStream httpRequestToStream(String url, Map<String, String> params) {
          
   
        InputStream is = null;
        try {
          
   
            if (!(params == null)) {
          
   
                String parameters = "";
                boolean hasParams = false;
                for (String key : params.keySet()) {
          
   
                    String value = URLEncoder.encode(params.get(key), "UTF-8");
                    parameters += key + "=" + value + "&";
                    hasParams = true;
                }
                if (hasParams) {
          
   
                    parameters = parameters.substring(0, parameters.length() - 1);
                }

                url += "?" + parameters;
            }


            URL u = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) u.openConnection();
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Accept-Charset", "UTF-8");
            conn.setRequestProperty("contentType", "utf-8");
            conn.setConnectTimeout(50000);
            conn.setReadTimeout(50000);
            conn.setDoInput(true);
            //设置请求方式,默认为GET
            conn.setRequestMethod("GET");

            is = conn.getInputStream();
        } catch (UnsupportedEncodingException e) {
          
   
            e.printStackTrace();
        } catch (MalformedURLException e) {
          
   
            e.printStackTrace();
        } catch (IOException e) {
          
   
            e.printStackTrace();
        }
        return is;
    }
}

7.后续改进

经验分享 程序员 微信小程序 职场和发展