您的位置:首页 > 其它

使用第三方平台短信接口实现发送验证码

2017-04-26 14:50 1146 查看
  还是第三方的小平台的demo简单,基本没有任何封装的东西,简单易懂好实现,基本就是填上账号就能用.
package com.test;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class SendMessage {
@SuppressWarnings({ "static-access", "static-access" })
public static void main(String[] args) {
try {

SendMessage sm = new SendMessage();

// Http Get请求
//test.sendSMSGet("13439117920",
//"Java Http GET 方式短信调试已经成功!!!!!【成都凌凯】", "");

String code=random.getThree();
// Http post 请求
sm.sendSMSPost("手机号",
"短信内容:"+code+ "有效时间为五分钟", "");

String CorpID = "";// 账户名
String Pwd = "";// 密码

//回复信息查询
//	test.getReplyMsg(CorpID, Pwd);
//余额查询
sm.getSelSum(CorpID, Pwd);
//获取禁止号码
//	test.getNotSend(CorpID, Pwd);

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

}

/**
* http get请求 发送方法 其他方法同理 返回值>0 提交成功
*
* @param Mobile
*            手机号码
* @param Content
*            发送内容
* @param send_time
*            定时发送的时间;可以为空,为空时为及时发送
* @return 返回值
* @throws MalformedURLException
* @throws UnsupportedEncodingException
*/
public static int sendSMSGet(String Mobile, String Content, String send_time)
throws MalformedURLException, UnsupportedEncodingException {
URL url = null;
String CorpID = "";// 账户名
String Pwd = "";// 密码
String send_content = URLEncoder.encode(
Content.replaceAll("<br/>", " "), "GBK");// 发送内容
url = new URL("https://sdk2.028lk.com/sdk2/BatchSend2.aspx?CorpID="
+ CorpID + "&Pwd=" + Pwd + "&Mobile=" + Mobile + "&Content="
+ send_content + "&Cell=&SendTime=" + send_time);
BufferedReader in = null;
int inputLine = 0;
try {
System.out.println("开始发送短信手机号码为 :" + Mobile);
in = new BufferedReader(new InputStreamReader(url.openStream()));
inputLine = new Integer(in.readLine()).intValue();
} catch (Exception e) {
System.out.println("网络异常,发送短信失败!");
inputLine = -2;
}
System.out.println("结束发送短信返回值:  " + inputLine);
return inputLine;
}

/**
* Hppt POST请求发送方法 返回值>0 为 提交成功
*
* @param Mobile
*            电话号码
* @param Content
*            发送内容
* @param send_time
*            定时发送时间,为空时,为及时发送
* @return
* @throws MalformedURLException
* @throws UnsupportedEncodingException
*/
public static int sendSMSPost(String Mobile, String Content,
String send_time) throws MalformedURLException,
UnsupportedEncodingException {

String inputLine = "";
int value = -2;
DataOutputStream out = null;
InputStream in = null;

String CorpID = "";// 账户名
String Pwd = "";// 密码
String send_content = URLEncoder.encode(
Content.replaceAll("<br/>", " "), "GBK");// 发送内容

String strUrl = "https://sdk2.028lk.com/sdk2/BatchSend2.aspx";
String param = "CorpID=" + CorpID + "&Pwd=" + Pwd + "&Mobile=" + Mobile
+ "&Content=" + send_content + "&Cell=&SendTime=" + send_time;

try {

inputLine = sendPost(strUrl, param);

System.out.println("开始发送短信手机号码为 :" + Mobile);

value = new Integer(inputLine).intValue();

} catch (Exception e) {

System.out.println("网络异常,发送短信失败!");
value = -2;

}

System.out.println(String.format("返回值:%d", value));

return value;
}

/**
* 获取回复消息
* @param corpId 账号
* @param pwd 密码
* @return 回复消息结果
*/
public static String getReplyMsg(String corpId,String pwd){

String result="";
String msg = "";
String strUrl = "https://sdk2.028lk.com/sdk2/Get.aspx";
String param = "CorpID=" + corpId + "&Pwd=" + pwd;

try {

result = sendPost(strUrl,param);
//			result ="||15281008413#123#2017-01-04||15281008412#123#2017-01-04||15281008413#121#2017-01-04||15281008410#123#2017-01-04||";

if(result==null||result.equals("")||result.length()==0){
msg ="没有上行信息";
}

if(result.equals("-1")){
msg = "账号未注册";
}else if(result.equals("-2")){
msg = "其他错误";
}else if(result.equals("-3")){
msg = "密码错误";
}else if(result.equals("-101")){
msg = "调用接口频率过快(大于30s调用一次)";
}else if(result.equals("-100")){
msg = "IP黑名单";
}else if(result.equals("-102")){
msg = "账号黑名单";
}else if(result.equals("-103")){
msg = "IP未导白";

}else {

msg = String.format("获取成功!%s",result);

result = result.replace("||", "|");

String [] strArray = result.split("\\|");
String outContent = "";

int i = 0;

for(String str : strArray){

if(str.equals(""))
continue;

String [] strConArr = str.split("#");

if(strConArr ==null||strConArr.length<=0)
continue;

i = i+1;

outContent = String.format("第%d条回复,手机号码:%s,回复内容:%s,回复时间:%s",
i,
strConArr[0],
strConArr[1],
strConArr[2]);

System.out.println(outContent);

}
}

System.out.println(msg);

} catch (Exception e) {

System.out.println("网络异常,回复消息获取失败!");

}

return result;
}

/**
* 账号余额查询
* @param corpId 账号
* @param pwd 密码
* @return
*/
public static String getSelSum(String corpId,String pwd){

String result="";
String msg = "";
String strUrl = "https://sdk2.028lk.com/sdk2/SelSum.aspx";
String param = "CorpID=" + corpId + "&Pwd=" + pwd;

try {

result = sendPost(strUrl,param);

if(result.equals("-1")){
msg = "账号未注册";
}else if(result.equals("-2")){
msg = "其他错误";
}else if(result.equals("-3")){
msg = "密码错误";
}else if(result.equals("-101")){
msg = "调用接口频率过快(大于30s调用一次)";
}else if(result.equals("-100")){
msg = "IP黑名单";
}else if(result.equals("-102")){
msg = "账号黑名单";
}else if(result.equals("-103")){
msg = "IP未导白";
}else {
msg = String.format("获取成功!%s",result);
}

System.out.println(msg);

} catch (Exception e) {

System.out.println("网络异常,回复消息获取失败!");

}

return result;
}

/**
* 获取禁止发送的号码
* @param corpId 账号
* @param pwd 密码
* @return
*/
public static String getNotSend(String corpId, String pwd){

String result="";
String msg = "";
String strUrl = "https://sdk2.028lk.com/sdk2/NotSend.aspx";
String param = "CorpID=" + corpId + "&Pwd=" + pwd;

try {

result = sendPost(strUrl,param);

if(result.equals("-1")){
msg = "账号未注册";
}else if(result.equals("-2")){
msg = "其他错误";
}else if(result.equals("-3")){
msg = "密码错误";
}else if(result.equals("-101")){
msg = "调用接口频率过快(大于30s调用一次)";
}else if(result.equals("-100")){
msg = "IP黑名单";
}else if(result.equals("-102")){
msg = "账号黑名单";
}else if(result.equals("-103")){
msg = "IP未导白";
}else {
msg = result;
}

System.out.println(msg);

} catch (Exception e) {

System.out.println("网络异常,禁止号码获取失败!");

}

return result;

}

/**
* 向指定 URL 发送POST方法的请求
*
* @param url
*            发送请求的 URL
* @param param
*            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代
4000
表远程资源的响应结果
*/
public static String sendPost(String url, String param) {

PrintWriter out = null;
BufferedReader in = null;
String result = "";

try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}
生成六位数随机验证码.
/**
* @author www.bjmxmj.com/
* 生成六位随机数验证码
*
*/
public class random {
public static String getThree(){
Random rad=new Random();
return rad.nextInt(1000000)+"";
}

public static void main(String[] args) {
System.out.println("随机数为" + getThree());
}

}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐