1.短信平台的选取
采用的是mo信通,网址:https://www.molink.cn/comm/api.html
2 请求地址
http://IP:端口/sms/httpBatchSend
或:https://IP:端口/sms/httpBatchSend
提交方式:POST
编码格式:utf-8
Content-Type:application/x-www-form-urlencoded;charset=utf-8
注:
短信群发时,单次提交号码个数不能超过5000个(号码过多时,请求报文大小会变大,请注意设置请求和响应超时时间,建议>10s)
此地址,pwd是加密码(加密码获取方式:登录web平台、个人信息中查看)
3 输入参数
序号 | 参数 | 是否必须 | 描述 |
---|---|---|---|
1 | username | 必须 | 帐号 |
2 | pwd | 必须 | 加密码(从web平台、个人信息中获取,密码变更时,加密码也会变更); ts参数为空时填加密码,ts参数不为空时填md5(账号+加密码+时间戳),对账号密码时间戳拼接的字符串进行md5加密,32小写 |
3 | mobile | 必须 | 合法手机号码(若多个手机号码,手机号间用英文逗号(,)分隔),群发时,号码不能超过1000个 |
4 | content | 必须 | 短信内容,短信发送字数不能超过300字,长短信将按分配给账号的产品的计费规则,以多条计费。 |
5 | ts | 可选 | 时间戳,格式yyyyMMddHHmmss |
4 响应格式(JSON文本)
失败格式:
{
"code":"105",
"msg": "请求参数错误(必填、格式)"
}
成功格式:
{
"code":"0",
"msg": "提交成功",
"taskid": "11057292"
}
重要说明: code表示响应状态码(0表示成功,其他表示失败),msg表示响应信息,taskid表示任务编号(可用于查询网关返回状态)
5pom依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
6短信工具类
import java.io.IOException;
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;
/**
* 短信 工具类
*
* @author qsong
* @since 2019-07-08
*/
public class SMSUtil {
public static void sendMessage(String mobile, String content) {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod("http://api.uoleem.com.cn/sms/httpBatchSend");
client.getParams().setContentCharset("UTF-8");
method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
NameValuePair[] data = {//提交短信
new NameValuePair("username", ""),//账户
new NameValuePair("pwd", ""),//密码
new NameValuePair("mobile", mobile),//手机号
new NameValuePair("content", content),//模版内容
};
method.setRequestBody(data);
try {
client.executeMethod(method);
System.out.println(method.getResponseBodyAsString());
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// public static void main(String[] args) {
// sendMessage("18112303334", "您好!您已成功注册为我们的一员,您的租户账号为1,登录名2");
// }
}