JAVA發送手機短信,流傳有幾種方法:(1)使用webservice接口發送手機短信,這個可以使用sina提供的webservice進行發送,但是需要進行註冊;(2)使用短信mao的方式進行短信的發送,這種方式應該是比較的常用,前提是需要購買硬件設備,呵呵(3)使用中國網建提供的SMS短信平臺(申請賬號地址:http://sms.webchinese.cn/default.shtml)
本程序主要是運用了中國網建提供的SMS短信平臺,這個短信平臺基於java提供個專門的接口,話不多說。,上代碼,有代碼有真相,呵呵
- package com.text;
- 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://sms.webchinese.cn/web_api/");
- post.addRequestHeader("Content-Type",
- "application/x-www-form-urlencoded;charset=gbk");// 在頭文件中設置轉碼
- NameValuePair[] data = { new NameValuePair("Uid", "cshxxxxxxxx"), // 註冊的用戶名
- new NameValuePair("Key", "53295058d1c46710666a"), // 註冊成功後,登錄網站使用的密鑰
- new NameValuePair("smsMob", "187xxxxxxx"), // 手機號碼
- 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();
- }
運行本程序首先的代入三個jar包:
commons-codec-1.4
commons-httpclient-3.1
commons-logging-1.1.1
請自行下載,呵呵
GBK編碼發送接口地址:
http://gbk.sms.webchinese.cn/?Uid=本站用戶名&Key=接口安全密碼&smsMob=手機號碼&smsText=短信內容
UTF-8編碼發送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用戶名&Key=接口安全密碼&smsMob=手機號碼&smsText=短信內容
獲取短信數量接口地址(UTF8):
http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用戶名&Key=接口安全密碼
獲取短信數量接口地址(GBK):
http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用戶名&Key=接口安全密碼
短信發送後返回值 | 說 明 |
---|---|
-1 | 沒有該用戶賬戶 |
-2 | 密鑰不正確(不是用戶密碼) |
-3 | 短信數量不足 |
-11 | 該用戶被禁用 |
-14 | 短信內容出現非法字符 |
-41 | 手機號碼爲空 |
-42 | 短信內容爲空 |
大於0 | 短信發送數量 |
注:上面的用戶名和密碼是我原先申請的,不知道爲什麼被停用了,在運行本程序之前請先到SMS短信平臺去申請一個用戶名和密碼。
附:
1. ASP 調用例子 |
2.C# 調用 //需要用到的命名空間 using System.Net; using System.IO; using System.Text; //調用時只需要把拼成的URL傳給該函數即可。判斷返回值即可 public string GetHtmlFromUrl(string url) { string strRet = null; if(url==null || url.Trim().ToString()=="") |
3.JAVA調用 import java.io.UnsupportedEncodingException; public class SendMsg_webchinese { } jar包下載 |
4.PHP $url='http://sms.webchinese.cn/web_api/?Uid=賬號&Key=接口密鑰&smsMob=手機號碼&smsText=短信內容'; echo Get($url); |
5.VB.NET '調用發送短信,NoList接收號碼.多個之間用,分開,Memo內容70字 Public Function SendSMS(ByVal NoList As String, ByVal Memo As String) As String Dim Url As String = "http://sms.webchinese.cn/web_api/?Uid=賬號&Key=接口密鑰&smsMob=手機號碼&smsText=短信內容" Dim webClient As New Net.WebClient() Try 'Dim responseData As Byte() = Dim srcString As String = webClient.DownloadString(Url) Return srcString Catch Return "-444" End Try End Function |