lin
2024-03-06 ca1df8ab561fb8cba631695385b35ba96386cda1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package org.springblade.common.utils;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class SmsUtils {
 
    private static Logger logger = LoggerFactory.getLogger(SmsUtils.class);
 
    public static String buildRequestXMLString(String id, String pwd, String serviceid, String phone, String content) {
        StringBuffer sb = new StringBuffer();
 
        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
            .append("<svc_init ver=\"2.0.0\">")
            .append("<sms ver=\"2.0.0\">")
            .append("<client>")
            .append("<id>").append(id).append("</id>")
            .append("<pwd>").append(pwd).append("</pwd>")
            .append("<serviceid>").append(serviceid).append("</serviceid>")
            .append("</client>")
            .append("<sms_info>")
            .append("<phone>").append(phone).append("</phone>")
            .append("<content>").append(content).append("</content>")
            .append("</sms_info>")
            .append("</sms>")
            .append(" </svc_init>");
 
        logger.info("buildRequestXMLString:" + sb.toString());
        return sb.toString();
    }
 
    public static String postXMLSendSMSRequest(String servletUrl, String content) {
        String result = null;
 
        BufferedReader br = null;
        OutputStreamWriter out = null;
        HttpURLConnection con = null;
 
        try {
            URL url = new URL(servletUrl);
 
            con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(true);
            con.setRequestMethod("POST");
 
            out = new OutputStreamWriter(con.getOutputStream(), "UTF-8");
 
            out.write(content);
 
            out.flush();
 
            br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
 
            String line = null;
 
            StringBuilder sb = new StringBuilder();
 
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
 
            result = sb.toString();
 
            System.out.println(result);
            logger.info("postXMLSendSMSRequest:" + result);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
 
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
 
            if (con != null) {
                con.disconnect();
                con = null;
            }
        }
 
        return result;
    }
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        //下面的MAS_ID、PASSWORD仅供测试使用,正式使用由移动公司分配
        String MAS_ID = "182";
        String PASSWORD = "bYcLgYwXOZspDzEnaGsNHAGUykKEiexknHY9H98xVTQ8Zbeya8bexQ==";
//        Map map = new HashMap<>();
//        map.put("ip", "127.0.0.1");
//        map.put("port", "3306");
//        map.put("tenantCode", "test001");
//        StrSubstitutor strSubstitutor = new StrSubstitutor(map);
//        String url3 = "jdbc:mysql://${ip}:${port}/${tenantCode}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai";
//        String context3 = strSubstitutor.replace(url3);
//        System.out.println(context3);
 
//        String reqXML = buildRequestXMLString(MAS_ID, PASSWORD, "", "18720768376", "测试短信");
 
//        postXMLSendSMSRequest("http://218.204.110.232:8080/emc/HttpSendSMSService", reqXML);
    }
}