package org.springblade.common.utils;
import liquibase.repackaged.org.apache.commons.lang3.text.StrSubstitutor;
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;
import java.util.HashMap;
import java.util.Map;
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("")
.append("")
.append("")
.append("")
.append("").append(id).append("")
.append("").append(pwd).append("")
.append("").append(serviceid).append("")
.append("")
.append("")
.append("").append(phone).append("")
.append("").append(content).append("")
.append("")
.append("")
.append(" ");
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;
}
public static void send(String phone, Map content) {
StrSubstitutor strSubstitutor = new StrSubstitutor(content);
String url3 = "【上饶基层自治】您正在验证投票操作,验证码:${code}。如非本人操作,则密码可能已泄露,建议立即修改密码或联系客服。";
String context3 = strSubstitutor.replace(url3);
String MAS_ID = "182";
String PASSWORD = "bYcLgYwXOZspDzEnaGsNHAGUykKEiexknHY9H98xVTQ8Zbeya8bexQ==";
String reqXML = buildRequestXMLString(MAS_ID, PASSWORD, "", phone, context3);
postXMLSendSMSRequest("http://218.204.110.232:8080/emc/HttpSendSMSService", reqXML);
}
/**
* @param args
*/
public static void main(String[] args) {
//下面的MAS_ID、PASSWORD仅供测试使用,正式使用由移动公司分配
String MAS_ID = "182";
String PASSWORD = "bYcLgYwXOZspDzEnaGsNHAGUykKEiexknHY9H98xVTQ8Zbeya8bexQ==";
String reqXML = buildRequestXMLString(MAS_ID, PASSWORD, "", "18720768376", "测试短信");
postXMLSendSMSRequest("http://218.204.110.232:8080/emc/HttpSendSMSService", reqXML);
}
}