首页编程java编程java发动短信需要什么包 java如何实现发送短信验证码功能

java发动短信需要什么包 java如何实现发送短信验证码功能

编程之家2023-10-13104次浏览

大家好,关于java发动短信需要什么包很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java如何实现发送短信验证码功能的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

java发动短信需要什么包 java如何实现发送短信验证码功能

java如何实现发送短信验证码功能

1、创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法

/***文件说明*@Description:扩展说明*@Copyright: XXXX dreamtech.com.cn Inc. All right reserved*@Version: V6.0*/package com.demo.util; import java.io.IOException;import java.util.Map; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.SimpleHttpConnectionManager;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod;/***@Author: feizi*@Date: XXXX年XX月XX日 XX:XX:XX*@ModifyUser: feizi*@ModifyDate: XXXX年XX月XX日 XX:XX:XX*@Version:V6.0*/public class HttpRequestUtil{/*** HttpClient模拟POST请求*方法说明*@Discription:扩展说明*@param url*@param params*@return String*@Author: feizi*@Date: XXXX年XX月XX日 XX:XX:XX*@ModifyUser:feizi*@ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static String postRequest(String url, Map<String, String> params){//构造HttpClient的实例 HttpClient httpClient= new HttpClient();//创建POST方法的实例 PostMethod postMethod= new PostMethod(url);//设置请求头信息 postMethod.setRequestHeader("Connection","close");//添加参数 for(Map.Entry<String, String> entry: params.entrySet()){ postMethod.addParameter(entry.getKey(), entry.getValue());}//使用系统提供的默认的恢复策略,设置请求重试处理,用的是默认的重试处理:请求三次 httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);//接收处理结果 String result= null; try{//执行Http Post请求 httpClient.executeMethod(postMethod);//返回处理结果 result= postMethod.getResponseBodyAsString();} catch(HttpException e){//发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("请检查输入的URL!"); e.printStackTrace();} catch(IOException e){//发生网络异常 System.out.println("发生网络异常!"); e.printStackTrace();} finally{//释放链接 postMethod.releaseConnection();//关闭HttpClient实例 if(httpClient!= null){((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); httpClient= null;}} return result;}/*** HttpClient模拟GET请求*方法说明*@Discription:扩展说明*@param url*@param params*@return String*@Author: feizi*@Date: XXXX年XX月XX日 XX:XX:XX*@ModifyUser:feizi*@ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static String getRequest(String url, Map<String, String> params){//构造HttpClient实例 HttpClient client= new HttpClient();//拼接参数 String paramStr=""; for(String key: params.keySet()){ paramStr= paramStr+"&"+ key+"="+ params.get(key);} paramStr= paramStr.substring(1);//创建GET方法的实例 GetMethod method= new GetMethod(url+"?"+ paramStr);//接收返回结果 String result= null; try{//执行HTTP GET方法请求 client.executeMethod(method);//返回处理结果 result= method.getResponseBodyAsString();} catch(HttpException e){//发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("请检查输入的URL!"); e.printStackTrace();} catch(IOException e){//发生网络异常 System.out.println("发生网络异常!"); e.printStackTrace();} finally{//释放链接 method.releaseConnection();//关闭HttpClient实例 if(client!= null){((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown(); client= null;}} return result;}}

2、在创建一个类,生成验证码,然后传递相应的参数(不同的短信平台接口会有不同的参数要求,这个一般短信平台提供的接口文档中都会有的,直接看文档然后按要求来即可)

java发动短信需要什么包 java如何实现发送短信验证码功能

/***文件说明*@Description:扩展说明*@Copyright: XXXX dreamtech.com.cn Inc. All right reserved*@Version: V6.0*/package com.demo.util; import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;/***@Author: feizi*@Date: XXXX年XX月XX日 XX:XX:XX*@ModifyUser: feizi*@ModifyDate: XXXX年XX月XX日 XX:XX:XX*@Version:V6.0*/public class SendMsgUtil{/***发送短信消息*方法说明*@Discription:扩展说明*@param phones*@param content*@return*@return String*@Author: feizi*@Date: 2015年4月17日下午7:18:08*@ModifyUser:feizi*@ModifyDate: 2015年4月17日下午7:18:08*/@SuppressWarnings("deprecation") public static String sendMsg(String phones,String content){//短信接口URL提交地址 String url="短信接口URL提交地址"; Map<String, String> params= new HashMap<String, String>(); params.put("zh","用户账号"); params.put("mm","用户密码"); params.put("dxlbid","短信类别编号"); params.put("extno","扩展编号");//手机号码,多个号码使用英文逗号进行分割 params.put("hm", phones);//将短信内容进行URLEncoder编码 params.put("nr", URLEncoder.encode(content)); return HttpRequestUtil.getRequest(url, params);}/***随机生成6位随机验证码*方法说明*@Discription:扩展说明*@return*@return String*@Author: feizi*@Date: 2015年4月17日下午7:19:02*@ModifyUser:feizi*@ModifyDate: 2015年4月17日下午7:19:02*/ public static String createRandomVcode(){//验证码 String vcode=""; for(int i= 0; i< 6; i++){ vcode= vcode+(int)(Math.random()* 9);} return vcode;}/***测试*方法说明*@Discription:扩展说明*@param args*@return void*@Author: feizi*@Date: XXXX年XX月XX日 XX:XX:XX*@ModifyUser:feizi*@ModifyDate: XXXX年XX月XX日 XX:XX:XX*/ public static void main(String[] args){// System.out.println(SendMsgUtil.createRandomVcode());// System.out.println("&ecb=12".substring(1)); System.out.println(sendMsg("18123456789,15123456789","尊敬的用户,您的验证码为"+ SendMsgUtil.createRandomVcode()+",有效期为60秒,如有疑虑请详询XXX-XXX-XXXX【XXX中心】"));}

然后执行一下,一般的情况下参数传递正确,按照接口文档的规范来操作的话,都会发送成功的,手机都能收到验证码的,然后可能会出现的问题就是:发送的短信内容有可能会出现中文乱码,然后就会发送不成功,按照短信平台的要求进行相应的编码即可。一般都会是UTF-8编码。

java怎么实现群发短信的功能

JAVA实现短信群发的步骤:

java发动短信需要什么包 java如何实现发送短信验证码功能

1、使用第三方短信平台服务商,接入短信服务;

2、调用短信提交页面发送请求;

3、服务器向第三方短信平台提交发送请求;

4、短信平台通过运营商将短信下发至用户的手机上。

以下是秒赛短信平台JAVA短信验证码接口代码示例

package test;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.net.URISyntaxException;

import java.net.URLEncoder;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.NameValuePair;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.lang3.StringUtils;

public class Apis{

//短信发送接口的http地址,请咨询客服

private static String url=“xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;

//编码格式。发送编码格式统一用UTF-8

private static String ENCODING=“UTF-8”;

public static void main(String[] args) throws IOException, URISyntaxException{

//账号

String account=“************************”;

//密码

String pswd=“************************”;

//修改为您要发送的手机号,多个用,分割

String mobile=“13*********”;

//设置您要发送的内容

String msg=“【秒赛科技】您的验证码是:1234”;

//发短信调用示例

System.out.println(Apis.send(account,pswd, mobile, msg));

}

/**

*发送短信

*

*@param account

* account

*@param pswd

* pswd

*@param mobile

*手机号码

*@param content

*短信发送内容

*/

public static String send(String account,String pswd, String mobile, String msg){

NameValuePair[] data={ new NameValuePair(“account”, account),

new NameValuePair(“pswd”, pswd),

new NameValuePair(“mobile”, mobile),

new NameValuePair(“msg”, msg),

new NameValuePair(“needstatus”,“true”),

new NameValuePair(“product”,“”)};

return doPost(url, data);

}

/**

*基于HttpClient的post函数

* PH

*@param url

*提交的URL

*

*@param data

*提交NameValuePair参数

*@return提交响应

*/

private static String doPost(String url, NameValuePair[] data){

HttpClient client= new HttpClient();

PostMethod method= new PostMethod(url);

// method.setRequestHeader(“ContentType”,

//“application/x-www-form-urlencoded;charset=UTF-8”);

method.setRequestBody(data);

// client.getParams()。setContentCharset(“UTF-8”);

client.getParams()。setConnectionManagerTimeout(10000);

try{

client.executeMethod(method);

return method.getResponseBodyAsString();

} catch(Exception e){

e.printStackTrace();

}

return null;

}

}

如何用java的web程序实现短信业务

看你要如何实现了,简单的使用GSM猫,这个需要通过串口向猫发送命令,然后由猫来负责发送和接收短信。

另外可以直接向移动申请短信服务,通过他们提供的短信接口(CMPP3.0)发送和接收短信,大型的短信应用都是通过这种方式。不过这种方式,如果你的短信量达不到一定数量,是不会给你开通的。那样,你可能需要自己去找其它服务商代理了。

我以前做过一个项目,就是应为短信量不够,没有开通短信网关服务,没有办法用猫的形式做的。

不过,不要向我要代码,涉及到保密。当然代码很简单,就是熟悉你选用的猫的串口协议,然后利用楼上提到的java通信API通过串口发送和接收数据就可以了。

好了,文章到此结束,希望可以帮助到大家。

伦敦时差(悉尼伦敦时差)java区块链是什么(区块链跟Java有什么关系)