ZQN
2024-06-22 e084539a1fbdf8335fcaf088969add8350bbd6a3
云片短信忽略SSL
4个文件已修改
143 ■■■■■ 已修改文件
project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-common/src/main/java/com/project/common/sms/YPSmsApi.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-common/src/main/java/com/project/common/utils/http/HttpUtils.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java
@@ -72,7 +72,7 @@
        return getDataTable(list);
    }
    @ApiOperation("列表——执法待上报")
    @ApiOperation("列表——执法执行单")
    @GetMapping("/execute/list")
    public TableDataInfo executeList(EnforceOrderQueryBo bo)
    {
project-common/src/main/java/com/project/common/sms/YPSmsApi.java
@@ -1,13 +1,13 @@
package com.project.common.sms;
import com.project.common.constant.Constants;
import com.project.common.utils.SslUtils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
@@ -15,6 +15,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.project.common.utils.WxPayUtils.createIgnoreSSLHttpClient;
/**
 * 短信http接口的java代码调用示例
@@ -96,11 +98,16 @@
     */
    public static String post(String url, Map<String, String> paramsMap)
    {
        CloseableHttpClient client = HttpClients.createDefault();
        CloseableHttpClient client = createIgnoreSSLHttpClient();
        String responseText = "";
        CloseableHttpResponse response = null;
        try {
            HttpPost method = new HttpPost(url);
            if(method.getURI().getPath().contains("https")){
                SslUtils.ignoreSsl();
            }
            if (paramsMap != null) {
                List<NameValuePair> paramList = new ArrayList<NameValuePair>();
                for (Map.Entry<String, String> param : paramsMap.entrySet()) {
project-common/src/main/java/com/project/common/utils/http/HttpUtils.java
@@ -24,10 +24,7 @@
import javax.net.ssl.*;
import java.io.*;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.net.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate;
@@ -205,59 +202,85 @@
        return result.toString();
    }
    public static String sendSSLPost(String url, String param)
    public static String sendSSLPost(String httpUrl, String param)
    {
        StringBuilder result = new StringBuilder();
        String urlNameString = url + "?" + param;
        try
        {
            log.info("sendSSLPost - {}", urlNameString);
            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom());
            URL console = new URL(urlNameString);
            HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            conn.setRequestProperty("Accept-Charset", "utf-8");
            conn.setRequestProperty("contentType", "utf-8");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setSSLSocketFactory(sc.getSocketFactory());
            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
            conn.connect();
            InputStream is = conn.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String ret = "";
            while ((ret = br.readLine()) != null)
            {
                if (ret != null && !"".equals(ret.trim()))
                {
                    result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
        HttpURLConnection connection = null;
        InputStream is = null;
        OutputStream os = null;
        BufferedReader br = null;
        String result = null;
        try {
            URL url = new URL(httpUrl);
            if("https".equalsIgnoreCase(url.getProtocol())){
                SslUtils.ignoreSsl();
            }
            // 通过远程url连接对象打开连接
            connection = (HttpURLConnection) url.openConnection();
            // 设置连接请求方式
            connection.setRequestMethod("POST");
            // 设置连接主机服务器超时时间:15000毫秒
            connection.setConnectTimeout(15000);
            // 设置读取主机服务器返回数据超时时间:60000毫秒
            connection.setReadTimeout(60000);
            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
            connection.setDoOutput(true);
            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
            connection.setDoInput(true);
            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
            connection.setRequestProperty("Content-Type", "application/json");
            // 建立连接
            connection.connect();
            // 通过连接对象获取一个输出流对象
            OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
            writer.write(param);
            writer.flush();
            // 通过连接对象获取一个输入流,向远程读取
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                StringBuffer sbf = new StringBuffer();
                String temp = null;
                // 循环遍历一行一行读取数据
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp);
                    sbf.append("\r");
                }
                result = sbf.toString();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            // 关闭资源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            log.info("recv - {}", result);
            conn.disconnect();
            br.close();
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // 断开与远程地址url的连接
            connection.disconnect();
        }
        catch (ConnectException e)
        {
            log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e);
        }
        catch (SocketTimeoutException e)
        {
            log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e);
        }
        catch (IOException e)
        {
            log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e);
        }
        catch (Exception e)
        {
            log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e);
        }
        return result.toString();
        return result;
    }
    private static class TrustAnyTrustManager implements X509TrustManager
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -238,6 +238,7 @@
                .set(StringUtils.isNotEmpty(resultBo.getRegionReason()), EnforceOrder::getRegionReason, resultBo.getRegionReason())
                .set(StringUtils.isNotEmpty(resultBo.getRegionImgs()), EnforceOrder::getRegionImgs, resultBo.getRegionImgs())
                .set(StringUtils.isNotEmpty(resultBo.getRegionVideos()), EnforceOrder::getRegionVideos, resultBo.getRegionVideos())
                .set( EnforceOrder::getOrderStatus, 4)
                .set( EnforceOrder::getExecuteTime, DateUtils.getNowDate())
        );
    }