public String sendCode(String phoneString){
String code=createRandomVcode();//验证码
// 用户名
String name="nangcheng";
// 密码
String pwd="405D046F8845AF375C5304360CCD";
// 电话号码字符串,中间用英文逗号间隔
StringBuffer mobileString=new StringBuffer(phoneString);
// 内容字符串
StringBuffer contextString=new StringBuffer(code);
// 签名
String sign="【海络】";
// 追加发送时间,可为空,为空为及时发送
String stime="";
// 扩展码,必须为数字 可为空
StringBuffer extno=new StringBuffer();
try {
String result=doPost(name, pwd, mobileString, contextString, sign, stime, extno);
log.info("Send code is"+result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return code;
}
/**
* 发送短信
*
* @param name 用户名
* @param pwd 密码
* @param mobileString 电话号码字符串,中间用英文逗号间隔
* @param contextString 内容字符串
* @param sign 签名
* @param stime 追加发送时间,可为空,为空为及时发送
* @param extno 扩展码,必须为数字 可为空
* @return
* @throws Exception
*/
public static String doPost(String name, String pwd,
StringBuffer mobileString, StringBuffer contextString,
String sign, String stime, StringBuffer extno) throws Exception {
StringBuffer param = new StringBuffer();
param.append("name="+name);
param.append("&pwd="+pwd);
param.append("&mobile=").append(mobileString);
param.append("&content=").append(URLEncoder.encode(contextString.toString(),"UTF-8"));
param.append("&stime="+stime);
param.append("&sign=").append(URLEncoder.encode(sign,"UTF-8"));
param.append("&type=pt");
param.append("&extno=").append(extno);
URL localURL = new URL("http://api.daiyicloud.com/asmx/smsservice.aspx?");
URLConnection connection = localURL.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");
httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpURLConnection.setRequestProperty("Content-Length", String.valueOf(param.length()));
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
String resultBuffer = "";
try {
outputStream = httpURLConnection.getOutputStream();
outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(param.toString());
outputStreamWriter.flush();
if (httpURLConnection.getResponseCode() >= 300) {
throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
}
inputStream = httpURLConnection.getInputStream();
resultBuffer = convertStreamToString(inputStream);
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
}
if (outputStream != null) {
outputStream.close();
}
if (reader != null) {
reader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
}
return resultBuffer;
}
/**
* 转换返回值类型为UTF-8格式.
* @param is
* @return
*/
public static String convertStreamToString(InputStream is) {
StringBuilder sb1 = new StringBuilder();
byte[] bytes = new byte[4096];
int size = 0;
try {
while ((size = is.read(bytes)) > 0) {
String str = new String(bytes, 0, size, "UTF-8");
sb1.append(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb1.toString();
}
public static String createRandomVcode(){
//验证码
String vcode = "";
for (int i = 0; i < 4; i++) {
vcode = vcode + (int)(Math.random() * 9);
}
return vcode;
}
短信验证码
Posted 枫沫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了短信验证码相关的知识,希望对你有一定的参考价值。
以上是关于短信验证码的主要内容,如果未能解决你的问题,请参考以下文章