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