本方法是基于中国网建短信通实现短信发送的。
首先申请个账号,免费五条短信和三条彩信。
使用这个方法还是比较简单的,但是免费的只有五条,而且每次充值最少五十,小用一下还是比较坑的,如果只是了解一下这个功能还是可以看看的。
中国网建官网: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