1.第三方短信平台API
使用Java发送手机短信,一般要通过第三方的短信平台完成,所以我们可以先选择一家短信平台,注册用户。这里我们选择中国建网完成短信发送。
先到中国网建(http://sms.webchinese.cn/default.shtml)注册用户,可以获得5条免费短信用于测试。
注册的用户会获得一个密钥,编程时候要用以标识身份。登录后点击“修改短信密钥”可以看到密钥。
做了这些准备工作,如何发送短信呢,短信平台会提供调用方式,在首页点击“短信API接口”,我们可以查看API说明,实际上是通过表单提交的请求来说明各种参数的。
- 具体实现步骤
(1)准备所需要的jar包
代码语言:javascript复制 <!-- commons-logging.jar -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- commons-httpclient.jar -->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<!-- commons-codec.jar -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
(2)封装SmsSender工具类
使用到“commons-httpclient.jar”用来向第三方平台发送POST请求。
(3)制作一个简单界面测试短信发送
JSP页面:
代码语言:javascript复制 <h3>短信发送测试</h3>
<form action="sms" method="post">
手机号码:<input name="phoneNr" /><br/>
短信消息:<input name="message" /> <button>发送</button>
</form>
<label style="color:red">${error}</label>
Servlet部分:
代码语言:javascript复制@WebServlet("/sms")
public class SmsServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String phoneNr = req.getParameter("phoneNr");
String message = req.getParameter("message");
SmsSender smsSender = new SmsSender();
int code = smsSender.sendSms(phoneNr, message);
if(code == 1){
resp.sendRedirect(req.getContextPath() "/success.jsp");
}else{
req.setAttribute("error", "短信发送不成功,错误编号:" code);
req.getRequestDispatcher("test.jsp").forward(req, resp);
}
}
}
运行效果如下图所示。