package org.springblade.common.utils;
|
|
import org.apache.commons.lang.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("<?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;
|
}
|
|
|
public static void send(String phone, Map<String, String> 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);
|
}
|
}
|