| New file |
| | |
| | | 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("<?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); |
| | | } |
| | | } |
| | | |