package com.cku.sms; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.Date; import org.apache.commons.lang.StringUtils; import com.cku.util.DateUtils; import com.cku.util.MD5Generator; public class ZtSmsCode { public static String sendNote(String content, String mobile) { String sendParam = buildSendParam(mobile, content, TYPE_YX); return StringUtils.isBlank(sendParam) ? null : getUrl(sendParam); } /** * @Description: 发送营销类短信 * @author: yuanshuai * @date: 2018/1/19 11:29 */ public static String sendNoteYX(String content, String mobile) { String sendParam = buildSendParam(mobile, content, TYPE_YX); return StringUtils.isBlank(sendParam) ? null : getUrl(sendParam); } private static final String sendUrl = "http://www.api.zthysms.com/sendSms.do"; private static final String usernameHY = "cabhy"; private static final String passwordHY = "k7dAfa"; private static final String usernameYX = "cabyx"; private static final String passwordYX = "803Sta"; private static final String xh = ""; private static final int TYPE_HY = 1; private static final int TYPE_YX = 2; public static String getUrl(String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(sendUrl); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); //设置相应请求时间 conn.setConnectTimeout(30000); //设置读取超时时间 conn.setReadTimeout(30000); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream(),"utf-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { e.printStackTrace(); // System.out.println(e); // return "发送 POST 请求出现异常!"; } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } /** * @Description: 根据手机号和内容构建发送的url * @author: yuanshuai * @date: 2017/12/13 17:01 */ private static String buildSendParam(String mobile, String content, int type) { String param = null; try { String tkey = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss"); switch (type) { case TYPE_HY: param = "url=" + sendUrl + "&username=" + usernameHY + "&password=" + MD5Generator.generate(MD5Generator.generate(passwordHY) + tkey) + "&tkey=" + tkey + "&mobile=" + mobile + "&content=" + URLEncoder.encode(content, "UTF-8") + "&xh=" + xh; break; case TYPE_YX: param = "url=" + sendUrl + "&username=" + usernameYX + "&password=" + MD5Generator.generate(MD5Generator.generate(passwordYX) + tkey) + "&tkey=" + tkey + "&mobile=" + mobile + "&content=" + URLEncoder.encode(content, "UTF-8") + "&xh=" + xh; break; } } catch (Exception e) { e.printStackTrace(); return null; } return param; } }