美文网首页
公共类CommonUtil 补发

公共类CommonUtil 补发

作者: 何事西风悲画扇_4b46 | 来源:发表于2018-12-21 15:06 被阅读0次
    package com.alpha.modules.message.utils;
    
    
    
    import java.io.BufferedReader;
    
    import java.io.IOException;
    
    import java.io.InputStream;
    
    import java.io.InputStreamReader;
    
    import java.io.OutputStream;
    
    import java.io.UnsupportedEncodingException;
    
    import java.net.ConnectException;
    
    import java.net.HttpURLConnection;
    
    import java.net.URL;
    
    import javax.net.ssl.HttpsURLConnection;
    
    import javax.net.ssl.SSLContext;
    
    import javax.net.ssl.SSLSocketFactory;
    
    import javax.net.ssl.TrustManager;
    
    import javax.servlet.http.HttpServletRequest;
    
    import javax.servlet.http.HttpServletResponse;
    
    import com.alpha.modules.message.model.Template;
    
    import com.alpha.modules.oa.utils.WxConfigure;
    
    import net.sf.json.JSONObject; 
    
    
    
    public class CommonUtil { 
    
    
    
        public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) { 
    
    
    
            JSONObject jsonObject = null; 
    
            StringBuffer buffer = new StringBuffer();   
    
            try {   
    
                // 创建SSLContext对象,并使用我们指定的信任管理器初始化   
    
                TrustManager[] tm = { new MyX509TrustManager() };   
    
                SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");   
    
                sslContext.init(null, tm, new java.security.SecureRandom());   
    
                // 从上述SSLContext对象中得到SSLSocketFactory对象   
    
                SSLSocketFactory ssf = sslContext.getSocketFactory();   
    
    
    
                URL url = new URL(requestUrl);   
    
                HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();   
    
                httpUrlConn.setSSLSocketFactory(ssf);   
    
    
    
                httpUrlConn.setDoOutput(true);   
    
                httpUrlConn.setDoInput(true);   
    
                httpUrlConn.setUseCaches(false);   
    
                // 设置请求方式(GET/POST)   
    
                httpUrlConn.setRequestMethod(requestMethod);   
    
    
    
                if ("GET".equalsIgnoreCase(requestMethod)) { 
    
                    httpUrlConn.connect();   
    
                } 
    
    
    
    
    
                // 当有数据需要提交时   
    
                if (null != outputStr) {   
    
                    OutputStream outputStream = httpUrlConn.getOutputStream();   
    
                    // 注意编码格式,防止中文乱码   
    
                    outputStream.write(outputStr.getBytes("UTF-8"));   
    
                    outputStream.close();   
    
                }   
    
    
    
                // 将返回的输入流转换成字符串   
    
                InputStream inputStream = httpUrlConn.getInputStream();   
    
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");   
    
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);   
    
    
    
                String str = null;   
    
                while ((str = bufferedReader.readLine()) != null) {   
    
                    buffer.append(str);   
    
                }   
    
                bufferedReader.close();   
    
                inputStreamReader.close();   
    
                // 释放资源   
    
                inputStream.close();   
    
                inputStream = null;   
    
                httpUrlConn.disconnect();   
    
                jsonObject = JSONObject.fromObject(buffer.toString());   
    
            } catch (ConnectException ce) {   
    
                ce.printStackTrace(); 
    
            } catch (Exception e) {   
    
                e.printStackTrace(); 
    
            }   
    
            return jsonObject;   
    
        } 
    
    
    
        public static String httpRequest(String requestUrl, String requestMethod, String outputStr) { 
    
    
    
    
    
            StringBuffer buffer = new StringBuffer();   
    
            try {   
    
    
    
    
    
                URL url = new URL(requestUrl);   
    
                HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();   
    
    
    
    
    
                httpUrlConn.setDoOutput(true);   
    
                httpUrlConn.setDoInput(true);   
    
                httpUrlConn.setUseCaches(false);   
    
                // 设置请求方式(GET/POST)   
    
                httpUrlConn.setRequestMethod(requestMethod);   
    
    
    
                if ("GET".equalsIgnoreCase(requestMethod)) { 
    
                    httpUrlConn.connect();   
    
                } 
    
    
    
    
    
                // 当有数据需要提交时   
    
                if (null != outputStr) {   
    
                    OutputStream outputStream = httpUrlConn.getOutputStream();   
    
                    // 注意编码格式,防止中文乱码   
    
                    outputStream.write(outputStr.getBytes("UTF-8"));   
    
                    outputStream.close();   
    
                }   
    
    
    
                // 将返回的输入流转换成字符串   
    
                InputStream inputStream = httpUrlConn.getInputStream();   
    
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");   
    
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);   
    
    
    
                String str = null;   
    
                while ((str = bufferedReader.readLine()) != null) {   
    
                    buffer.append(str);   
    
                }   
    
                bufferedReader.close();   
    
                inputStreamReader.close();   
    
                // 释放资源   
    
                inputStream.close();   
    
                inputStream = null;   
    
                httpUrlConn.disconnect();   
    
                //jsonObject = JSONObject.fromObject(buffer.toString());   
    
            } catch (ConnectException ce) {   
    
                ce.printStackTrace(); 
    
            } catch (Exception e) {   
    
                e.printStackTrace(); 
    
            }   
    
            return buffer.toString();   
    
        } 
    
        public static String urlEncodeUTF8(String source){ 
    
            String result = source; 
    
            try { 
    
                result = java.net.URLEncoder.encode(source,"utf-8"); 
    
            } catch (UnsupportedEncodingException e) { 
    
                e.printStackTrace(); 
    
            } 
    
            return result; 
    
        } 
    
    
    
        public static String httpsRequestForStr(String requestUrl, String requestMethod, String outputStr) { 
    
    
    
            String result=""; 
    
            StringBuffer buffer = new StringBuffer();   
    
            try {   
    
                // 创建SSLContext对象,并使用我们指定的信任管理器初始化   
    
                TrustManager[] tm = { new MyX509TrustManager() };   
    
                SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");   
    
                sslContext.init(null, tm, new java.security.SecureRandom());   
    
                // 从上述SSLContext对象中得到SSLSocketFactory对象   
    
                SSLSocketFactory ssf = sslContext.getSocketFactory();   
    
    
    
                URL url = new URL(requestUrl);   
    
                HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();   
    
                httpUrlConn.setSSLSocketFactory(ssf);   
    
    
    
                httpUrlConn.setDoOutput(true);   
    
                httpUrlConn.setDoInput(true);   
    
                httpUrlConn.setUseCaches(false);   
    
                // 设置请求方式(GET/POST)   
    
                httpUrlConn.setRequestMethod(requestMethod);   
    
    
    
                if ("GET".equalsIgnoreCase(requestMethod)) { 
    
                    httpUrlConn.connect();   
    
                } 
    
    
    
    
    
                // 当有数据需要提交时   
    
                if (null != outputStr) {   
    
                    OutputStream outputStream = httpUrlConn.getOutputStream();   
    
                    // 注意编码格式,防止中文乱码   
    
                    outputStream.write(outputStr.getBytes("UTF-8"));   
    
                    outputStream.close();   
    
                }   
    
    
    
                // 将返回的输入流转换成字符串   
    
                InputStream inputStream = httpUrlConn.getInputStream();   
    
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");   
    
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);   
    
    
    
                String str = null;   
    
                while ((str = bufferedReader.readLine()) != null) {   
    
                    buffer.append(str);   
    
                }   
    
                bufferedReader.close();   
    
                inputStreamReader.close();   
    
                // 释放资源   
    
                inputStream.close();   
    
                inputStream = null;   
    
                httpUrlConn.disconnect();   
    
                result=buffer.toString();   
    
            } catch (ConnectException ce) {   
    
                ce.printStackTrace(); 
    
            } catch (Exception e) {   
    
                e.printStackTrace(); 
    
            }   
    
            return result;   
    
        } 
    
    
    
        public static boolean sendTemplateMsg(Template template) {
    
    String token = getToken(template);
    
    boolean flag = false;
    
    String requestUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN";
    
    requestUrl = requestUrl.replace("ACCESS_TOKEN", token);
    
    String jsonString = template.toJSON();
    
    JSONObject jsonResult = CommonUtil.httpsRequest(requestUrl, "POST", jsonString);
    
    if (jsonResult != null) {
    
    int errorCode = jsonResult.getInt("errcode");
    
    String errorMessage = jsonResult.getString("errmsg");
    
    if (errorCode == 0) {
    
    flag = true;
    
    } else {
    
    System.out.println("模板消息发送失败:" + errorCode + "," + errorMessage);
    
    flag = false;
    
    }
    
    }
    
    return flag;
    
    }
    
    /**
    
    * 获取token
    
    *
    
    * @param template
    
    * @return
    
    */
    
    public static String getToken(Template template) {
    
    String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+WxConfigure.getAppID()+"&secret="+WxConfigure.getSecret();
    
    JSONObject jsonResult = CommonUtil.httpsRequest(requestUrl, "POST", template.toJSON());
    
    if (jsonResult != null) {
    
    String access_token = jsonResult.getString("access_token");
    
    return access_token;
    
    } else {
    
    return "";
    
    }
    
    }
    
    /*
    
    * 获取openId
    
    *
    
    * @param request
    
    * @param model
    
    * @throws IOException
    
    */
    
    public String getOpenId(String code, HttpServletRequest request, HttpServletResponse response)
    
    throws IOException {
    
    String requestUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=" + WxConfigure.getAppID() + "&secret="
    
    + WxConfigure.getSecret() + "&js_code=" + code + "&grant_type=authorization_code";
    
    JSONObject jsonResult = CommonUtil.httpsRequest(requestUrl, "POST", null);
    
    String openId = "";
    
    if (jsonResult != null) {
    
    openId = jsonResult.getString("openid");
    
    }
    
    return openId;
    
    }
    
    } 
    

    相关文章

      网友评论

          本文标题:公共类CommonUtil 补发

          本文链接:https://www.haomeiwen.com/subject/whnmkqtx.html