将发送的验证码封装成工具类,到时只需要调用这个方法,将随机生成的验证码传入就行,上代码:
import java.io.IOException;
import java.util.Random;
import java.util.UUID;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
* 短信发送接口工具类
*
* @author wfk
*
*/
public class SmsUtils {
/**
* 发送短信
* @param mobile
* @param message
*/
public static void sendSms(String mobile, String message) {
String info = null;
try {
HttpClient httpclient = new HttpClient();// 方法调用
PostMethod post = new PostMethod(Constant.SMS_URL);// 接口地址
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf8");// 格式转换
post.addParameter("Search_ID", UuidUtils.get32UUID());// 接口数据
post.addParameter("login_name", Constant.SMS_USER_NAME);// 接口用户名
post.addParameter("password", Constant.SMS_PASSWORD);// 接口密码
post.addParameter("Message", message);// 短信内容
post.addParameter("Mobile", mobile);// 要发送短信的手机号,可多个手机号,用逗号隔开。
post.addParameter("SerialNumber", "20110801142517000000");// 序列号
post.addParameter("start_time", "");// 发送时间,如果定时发送,可插入时间
post.addParameter("TemplateId", "-1");
httpclient.executeMethod(post);
info = new String(post.getResponseBody(), "utf8");
System.out.println(info);
// 最后得到结果后,是一个字符长串,截取有用的信息,可判断短信是否发送成功
} catch (IOException e) {
System.out.println("短信平台连接超时,URL:"+Constant.SMS_URL+"===UID:"+Constant.SMS_USER_NAME+"===PASS:"+Constant.SMS_PASSWORD);
e.printStackTrace();
}
}
/**
* 产生随机的六位数
* @return
*/
public static String getSix(){
Random rad=new Random();
String result = rad.nextInt(1000000) +"";
if(result.length()!=6){
return getSix();
}
return result;
}
}