/** * 文件说明 * @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, MapString, String params) {//构造HttpClientjava短信群发代码的实例HttpClient httpClient = new HttpClient();//创建POST方法的实例PostMethod postMethod = new PostMethod(url);//设置请求头信息postMethod.setRequestHeader("Connection", "close");//添加参数for (Map.EntryString, String entry : params.entrySet()) {postMethod.addParameter(entry.getKey(), entry.getValue());}//使用系统提供的默认的恢复策略,设置请求重试处理java短信群发代码 , 用的是默认的重试处理:请求三次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, MapString, 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、在创建一个类,生成验证码,然后传递相应的参数(不同的短信平台接口会有不同的参数要求,这个一般短信平台提供的接口文档中都会有的 , 直接看文档然后按要求来即可)
/** * 文件说明 * @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提交地址";MapString, String params = new HashMapString, 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; i6; 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中心】")); }
- java查询数组中是否包含某一个值 javamongodb数组查询
- redis实战电子书 redisjava书籍
- javaredis集群 javaredis列队
- Redis队列排队 redis队列java
- java mongodb aggregate mongodb的教程java
- redis实现秒杀功能java redis和mq实现秒杀
- redis队列实现秒杀java redis推时队列
- java redis面试 javaredis试题
- spring监听redis队列 java中redis监听
- java中redis javaredis异常
