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);
|
}
|
}
|