java + servlet+ jsp实现发送手机短信验证码
【1】选择平台,完成认证。
短信登陆平台很多,自己可以看个人爱好选择。
我们使用的API平台是:秒嘀云: https://sms.miaodiyun.com/login.html
注册该平台,完成认证就可以获取到参数:ACCOUNT SID , AUTH TOKEN , API
【2】创建短信模板 (该模板必须创建,通过平台审核只会才可以使用,而且后续的参数 smsContent 要和模板中的一致 )
【3】发送短信接口
http://www.miaodiyun.com/doc/https_sms.html
编写java手机短信发送代码
【4】项目目录结构 (idea 中创建的普通web工程)
【5】Config.java
public class Config {
/**
* url前半部分
*/
public static final String BASE_URL = " https://openapi.miaodiyun.com/distr*******dSMS";
/**
* 开发者注册后系统自动生成的账号,可在官网登录后查看
*/
public static final String ACCOUNT_SID = "fcf340ac***********915927";
/**
* 开发者注册后系统自动生成的TOKEN,可在官网登录后查看
*/
public static final String AUTH_TOKEN = "648384a1***********2c33e4f";
/**
* 响应数据类型, JSON或XML
*/
public static final String RESP_DATA_TYPE = "JSON";
}
【6】http请求工具HttpUtil.java
package com.miaodi.comment;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
/**
* http请求工具
*/
public class HttpUtil {
/**
* 构造通用参数timestamp、sig和respDataType
*
* @return
*/
public static String createCommonParam(String sid,String token) {
// 时间戳
long timestamp = System.currentTimeMillis();
// 签名
String sig = DigestUtils.md5Hex(sid + token + timestamp);
return "×tamp=" + timestamp + "&sig=" + sig + "&respDataType=" + Config.RESP_DATA_TYPE;
}
/**
* post请求
*
* @param url
* 功能和操作
* @param body
* 要post的数据
* @return
*