JAVA發送手機短信,流傳有幾種方法:(1)使用webservice接口發送手機短信,這個可使用sina提供的webservice進行發送,可是須要進行註冊;(2)使用短信mao的方式進行短信的發送,這種方式應該是比較的經常使用,前提是須要購買硬件設備(3)使用中國網建提供的SMS短信平臺(申請帳號地址:http://sms.webchinese.cn/default.shtml) html
本程序主要是運用了中國網建提供的SMS短信平臺,這個短信平臺基於java提供個專門的接口java
public class SMSverification {
/**
* 返回一個map集合,保存驗證碼code和發送短信的狀態碼result
*
* @param phone
* @return map
* @throws UnsupportedEncodingException
* @throws IOException
*/
public static HashMap<String, String> getMsgStatus(String phone)
throws UnsupportedEncodingException, IOException {
HashMap<String, String> map = new HashMap<String, String>();
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gbk");// 在頭文件中設置轉碼
String code = varificationCode();
NameValuePair[] data = {
new NameValuePair("uid", "yantuyouni"),// 註冊的用戶名
new NameValuePair("key", "yantuyouni"),// 註冊成功後,登陸網站使用的密鑰,這個密鑰要登陸到國建網而後有一個API接口,點進去就有一個key,能夠改,那個纔是密鑰
new NameValuePair("smsMob", phone),// 手機號碼
new NameValuePair("smsText", phone + "用戶您好,歡迎加入沿途有你。驗證碼:"
+ code + "。") };//設置短信內容
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode===========" + statusCode);
for (Header header : headers) {
System.out.println(header.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
System.out.println("返回的狀態消息========" + result);
map.put("code", code);
map.put("result", result);
return map;web
}app
/**
* 生成四位隨機數
*
* @return
*/
public static String varificationCode() {
String code = "";
int i = (int) ((Math.random() * 9 + 1) * 1000);// 生成一個四位的隨機數
code = String.valueOf(i);// Integer.toString(i);
return code;
}
}dom
短信發送後返回值 說 明
-1 沒有該用戶帳戶
-2 密鑰不正確(不是用戶密碼)
-3 短信數量不足
-11 該用戶被禁用
-14 短信內容出現非法字符
-41 手機號碼爲空
-42 短信內容爲空
大於0 短信發送數量 post