標籤:
今天看到了一個需求,需要做一個傳送簡訊的功能,網上找了找,大概有這幾種方法:(1)使用webservice介面傳送簡訊,這個可以使用sina提供的webservice進行發送,但是需要進行註冊;(2)使用簡訊mao的方式進行簡訊的發送,這種方式應該是比較的常用,前提是需要購買硬體裝置,呵呵(3)使用中國網建提供的SMS簡訊平台(申請帳號地址:http://sms.webchinese.com.cn/),聽說了網建提供了幾條免費的簡訊,就上去試了試,調用了下他的介面(實為調用介面,其實就是拷貝了一段代碼,呵呵~),代碼如下,和大家分享一下:
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 {
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gbk");// 在標頭檔中設定轉碼
NameValuePair[] data = { new NameValuePair("Uid", "註冊使用者名稱"),
new NameValuePair("Key", "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();
}
}
所需jar包
commons-codec-1.4
commons-httpclient-3.1.jar
commons-logging-1.1.1.jar
更多
JAVA如何?傳送簡訊