Java利用中国网建SMS短信通平台发送手机短信
程序员文章站
2022-05-16 16:58:17
...
JAVA发送手机短信,流传有几种方法:
(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;
(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备;
(3)使用中国网建提供的SMS短信平台(申请账号地址:
http://sms.webchinese.cn/default.shtml)
附件里是中国网建提供的SMS短信平台的在线API地址及Java调用接口需要的jar包。
(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;
(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备;
(3)使用中国网建提供的SMS短信平台(申请账号地址:
http://sms.webchinese.cn/default.shtml)
附件里是中国网建提供的SMS短信平台的在线API地址及Java调用接口需要的jar包。
package com.shihuan.core.common.mail; import java.io.IOException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SendSms { protected static Logger logger = LoggerFactory.getLogger(SendSms.class); /** * 功能: 通过中国网建SMS短信平台发送手机短信 * @param uri 网建短信平台接口地址 (例如: http://utf8.sms.webchinese.cn 或者 http://gbk.sms.webchinese.cn) * @param headerValue 短信头中的值 (例如: application/x-www-form-urlencoded;charset=utf-8 或者 application/x-www-form-urlencoded;charset=gbk) * @param username 在网建短信平台申请的用户名 (例如: testshihuan) * @param password 在网建短信平台申请的密码 (例如: shihuan123) * @param mobilephone 目的地手机号码 (例如: 13856756789,13578903476) * @param smsContent 短信内容 (例如: "你好!I am shihuan...") * @param resultcset 短信返回结果的编码 (例如: utf-8 或者 gbk) * @throws HttpException * @throws IOException */ public static void sendMobileInfo(String uri, String headerValue, String username, String password, String mobilephone, String smsContent, String resultcset) throws HttpException, IOException{ HttpClient client = new HttpClient(); PostMethod post = new PostMethod(uri); post.addRequestHeader("Content-Type", headerValue); //在头文件中设置转码 NameValuePair[] data = {new NameValuePair("Uid", username), new NameValuePair("Key", password), new NameValuePair("smsMob", mobilephone), new NameValuePair("smsText", smsContent)}; post.setRequestBody(data); client.executeMethod(post); Header[] headers = post.getResponseHeaders(); int statusCode = post.getStatusCode(); logger.info("statusCode: " + statusCode); for (Header h : headers) { logger.info(h.toString()); } String result = new String(post.getResponseBodyAsString().getBytes(resultcset)); logger.info(result); post.releaseConnection(); } }