首页 > 代码库 > 发短信接口
发短信接口
发短信接口
1 import java.io.IOException;
2 import java.io.InputStream;
3 import java.io.OutputStream;
4 import java.net.HttpURLConnection;
5 import java.net.MalformedURLException;
6 import java.net.URL;
7 import java.security.MessageDigest;
8 import java.text.SimpleDateFormat;
9 import java.util.Date;
10 import java.util.HashMap;
11 import java.util.regex.Matcher;
12 import java.util.regex.Pattern;
13
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
16
17
18 public class MessageSend {
19 //获取当前时间
20 private static final Logger log = LoggerFactory.getLogger(MessageSend.class);
21 private static String getnowtime(){
22 String todayTime=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss-SSS").format( new Date() );
23 return todayTime;
24
25 }
26 public static void main(String[] args){
27 HashMap<String, Object> map = new HashMap();
28 map.put("password", password);
29 map.put("password", password);
30 map.put("epid", epid);
31 String phone_num="电话号码";
32 String msgContent="测试消息";
33
34 String returnValue=http://www.mamicode.com/sendMsg(map, phone_num, msgContent);
35 System.out.println(returnValue);
36 }
37
38 public static String sendurl = "www.fbaidu.com";//发短信URL
39 public static String recurl = "www.sbaidu.com";
40 //发送短信
41 public static String sendMsg(HashMap map,String phone_num,String msgContent){
42 String returnValue="http://www.mamicode.com/-1";
43 try {
44 String userName = (String)map.get("username");
45 String passWord = (String)map.get("password");
46 String epid = (String)map.get("epid");
47 String[] num = phone_num.split(",");
48 StringBuffer wrongNum = new StringBuffer();
49 wrongNum.append("");
50 boolean checkPhoneNum = true;
51 for(int i=0;i<num.length;i++){
52 checkPhoneNum = checkPhoneNumFormat(num[i]);
53 if(!checkPhoneNum){
54 wrongNum.append(num[i]);
55 wrongNum.append(".");
56 }
57 checkPhoneNum = true;
58 }
59 if(!wrongNum.toString().equals("")){
60 throw new Exception("电话号码输入有误["+wrongNum.toString()+"]");
61 }
62 StringBuffer sb = new StringBuffer();
63 sb.append("username=");
64 sb.append(userName);
65 sb.append("&");
66 sb.append("password=");
67 sb.append(passWord);
68 sb.append("&");
69 sb.append("phone=");
70 sb.append(phone_num);
71 sb.append("&");
72 sb.append("message=");
73 sb.append(msgContent);
74 sb.append("&");
75 sb.append("epid=");
76 String key = "";
77 // if(epid != null && !epid.equals(""))
78 // key = encodeToMD5(phone_num,8,10,epid);
79 sb.append(epid);
80 String linkid = "";
81 sb.append("&");
82 sb.append("linkid=");
83 sb.append(linkid);
84 String subcode = "";
85 sb.append("&");
86 sb.append("subcode=");
87 sb.append(subcode);
88 URL http_url = new URL(sendurl);
89 HttpURLConnection http_conn = (HttpURLConnection)http_url.openConnection();
90 http_conn.setRequestMethod("GET");
91 http_conn.setDoOutput(true);
92 OutputStream outStream = http_conn.getOutputStream();
93
94 // System.out.println(sb.toString());
95 outStream.write(sb.toString().getBytes());
96 // System.out.println(sb.toString().getBytes()+"=sb.toString().getBytes()");
97 outStream.flush();
98 outStream.close();
99
100 InputStream inStream = http_conn.getInputStream();
101 byte[] inByte = new byte[inStream.available()];
102 int offset = 0;
103
104 while(offset < inByte.length){
105 offset += inStream.read(inByte);
106 }
107 inStream.close();
108 http_conn.disconnect();
109 returnValue = http://www.mamicode.com/new String(inByte);
110 //System.out.println("inByte="+inByte.length);
111 // System.out.println("inStream.read(inByte)="+inStream.read(inByte));
112 if(returnValue.equals("00")){//
113 log.debug("短信发送成功");
114 }else if(returnValue.equals("1")){//
115 log.debug("短信发送失败,原因:参数不完整!");
116 }else if(returnValue.equals("2")){//
117 log.debug("短信发送失败,原因:鉴权失败(包括:用户状态不正常、密码错误、用户不存在、地址验证失败,黑户)");
118 }else if(returnValue.equals("3")){//
119 log.debug("短信发送失败,原因:号码数量超出50条");
120 }else if(returnValue.equals("4")){//
121 log.debug("短信发送失败,原因:发送失败");
122 }else if(returnValue.equals("5")){//
123 log.debug("短信发送失败,原因:余额不足");
124 }else if(returnValue.equals("6")){//
125 log.debug("短信发送失败,原因:发送内容含屏蔽词");
126 }else {
127 System.out.println(returnValue);
128 log.debug("短信发送失败:原因"+returnValue);
129 }
130 } catch (MalformedURLException e){
131 e.printStackTrace();
132 } catch (IOException e){
133 e.printStackTrace();
134 } catch(Exception e){
135 e.printStackTrace();
136 }
137 return returnValue;
138 }
139 private static boolean isLogin = false;
140
141 public static String encodeToMD5(String phone_num, int firstFixd, int lastFixd, Number epid){
142 StringBuffer sb = new StringBuffer();
143 try {
144 if(null == phone_num)
145 throw new NullPointerException();
146 String[] num = phone_num.split(",");
147 String key = num[0].substring(0, firstFixd)
148 + num[num.length -1].substring(num[num.length -1].length() - lastFixd) + epid;
149 MessageDigest msgd = MessageDigest.getInstance("MD5");
150 msgd.update(key.getBytes());
151 byte[] md5 = msgd.digest();
152 for(int i=0;i < md5.length; i++){
153 if((md5[i] & 0xFF) < 10)
154 sb.append("0");
155 sb.append(Integer.toString(md5[i] & 0xFF, 16));
156 }
157 } catch (Exception e) {
158 e.printStackTrace();
159 }
160 System.out.println(sb.toString().toUpperCase());
161 return sb.toString().toUpperCase();
162 }
163 //验证手机号
164 public static boolean checkPhoneNumFormat(String phone_num){
165 boolean flag = false;
166 String regex = "^(13[0-9]|15[0-9]|18[0-9])\\d{8}$";
167 Pattern pattern = Pattern.compile(regex);
168 Matcher matcher = pattern.matcher(phone_num);
169 if(matcher.find()){
170 flag = true;
171 }
172 return flag;
173 }
174
175
176 }
发短信接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。