ext验证码java_java实现短信验证码

原标题:java实现短信验证码

使用接口,模拟post请求,调用创瑞短信平台提供的接口,实现短信验证码调用功能,下发。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLConnection;

import java.net.URLEncoder;

/*

功能:web.cr6868.com HTTP接口 发送短信

说明:http://web.cr6868.com/asmx/smsservice.aspx?name=登录名&pwd=接口密码&mobile=手机号码&content=内容&sign=签名&stime=发送时间&type=pt&extno=自定义扩展码

*/

public class xioo {

public static void main(String[] args) throws Exception {

// 用户名

String name="wbxxx";

// 密码

String pwd="0C759A360WWBD5F5E0F5FF9F0597";

// 电话号码字符串,中间用英文逗号间隔

StringBuffer mobileString=new StringBuffer("");

// 内容字符串

StringBuffer contextString=new StringBuffer("短信内容");

// 签名

String sign="签名";

// 追加发送时间,可为空,为空为及时发送

String stime="";

// 扩展码,必须为数字 可为空

StringBuffer extno=new StringBuffer();

System.out.println(doPost(name, pwd, mobileString, contextString, sign, stime, extno));

}

/**

* 发送短信

*

* @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://web.cr6868.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();

}

}

本文来源于创瑞短信平台,地址:返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值