今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码。验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信。显然这需要一个第三方提供的短信接口,来帮助我们实现向用户手机发送验证码短信。这里有一个非常好的第三方借口。连接地址:/jiekou.aspx。他提供了一个很好的短信接口,简单易用。下面是我自己参考写的一段测试代码:
package com.im;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;public class SmsBase {private Integer x_eid = 0;//会员企业ID号,个人用户为0private String x_uid = "yourname";//会员账号private String x_pwd_md5 = "e10adc3949ba59abbe56e057f20f883e";//登陆密码的MD5值32位private Integer x_gate_id = 300;//发送短信时通道ID,通道发送失败可以切换其它通道,无该值系统使用默认通道public String SendSms(String mobile, String content) throws UnsupportedEncodingException{Integer x_ac = 10;//发送信息HttpURLConnection httpconn = null;String x_memo = content.trim();//发送短信内容StringBuilder sb = new StringBuilder();sb.append(":6630/utf8/web_api/?x_eid=");sb.append(x_eid);sb.append("&x_uid=").append(x_uid);sb.append("&x_pwd_md5=").append(x_pwd_md5);sb.append("&x_ac=").append(x_ac);sb.append("&x_gate_id=").append(x_gate_id);sb.append("&x_target_no=").append(mobile);sb.append("&x_memo=").append(URLEncoder.encode(x_memo, "utf-8"));String result = "-20";System.out.println(sb.toString());try {URL url = new URL(sb.toString());httpconn = (HttpURLConnection) url.openConnection();BufferedReader rd = new BufferedReader(new InputStreamReader(httpconn.getInputStream()));result = rd.readLine();rd.close();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally{if(httpconn != null){httpconn.disconnect();httpconn = null;}}return result;}public static void main(String[] args) {String mobile="00000000000";String content="Hello";try {String result = new SmsBase().SendSms(mobile, content);System.out.println(result);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}}