本方法是基於中國網建短信通實現短信發送的。
首先申請個賬號,免費五條短信和三條彩信。
使用這個方法還是比較簡單的,但是免費的只有五條,而且每次充值最少五十,小用一下還是比較坑的,如果只是瞭解一下這個功能還是可以看看的。
中國網建官網:http://sms.webchinese.com.cn/index.shtml
三個依賴包
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
commons-codec-1.4.jar
java代碼實現
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class SendMsg_webchinese {
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.api.smschinese.cn");
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=gbk");// 在頭文件中設置轉碼
//發送短信所要設置的信息
NameValuePair[] data = { new NameValuePair("Uid", "你申請賬號的用戶名"),
new NameValuePair("Key", "你的賬號的密匙,自己可以在網頁上找一下"), new NameValuePair("smsMob", "收件人的手機號碼"),
new NameValuePair("smsText", "短信內容") };
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:" + statusCode);
for (Header h : headers) {
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
System.out.println(result); // 打印返回消息狀態,返回值表示的狀態後面會有介紹
post.releaseConnection();
}
}
上面代碼默認發送的短信是GBK編碼格式的,如果是其他格式的可以修改一下
Gbk編碼Url | http://gbk.api.smschinese.cn/ |
Utf-8編碼Url | http://utf8.api.smschinese.cn/ |
Uid | 本站用戶名(如您無本站用戶名請先註冊) |
Key | 註冊時填寫的接口祕鑰(可到用戶平臺修改接口祕鑰) 如需要加密參數,請把Key變量名改成KeyMD5, KeyMD5=接口祕鑰32位MD5加密,大寫。 |
smsMob | 目的手機號碼(多個手機號請用半角逗號隔開) |
smsText | 短信內容,最多支持400個字,普通短信70個字/條,長短信64個字/條計費 |
返回值所代表的信息
短信發送後返回值 | 說 明 |
---|---|
-1 | 沒有該用戶賬戶 |
-2 | 接口密鑰不正確 不是賬戶登陸密碼 |
-21 | MD5接口密鑰加密不正確 |
-3 | 短信數量不足 |
-11 | 該用戶被禁用 |
-14 | 短信內容出現非法字符 |
-4 | 手機號格式不正確 |
-41 | 手機號碼爲空 |
-42 | 短信內容爲空 |
-51 | 短信簽名格式不正確 接口簽名格式爲:【簽名內容】 |
-6 | IP限制 |
大於0 | 短信發送數量 |
其他語言的實現方法請參開參考http://sms.webchinese.com.cn/api.shtml