配置文件:
sendUrl : http://ems.smsway.com.cn/sendSMS.action
代码:
import java.net.MalformedURLException; import java.net.URL; import java.util.Map; import org.apache.log4j.Logger; import org.apache.struts2.ServletActionContext; import com.common.common.ProPertiesUtil; import com.duogou.mall.service.common.StringUtil; import com.ems.util.HttpUtil; import com.ems.util.MD5; import com.ems.util.XmlUtil; public class SmsUtil { private static Logger logger = Logger.getLogger(SmsUtil.class); public static Boolean sendSms(String mobile,String content) { boolean nFlag = false; String sendURL = ProPertiesUtil.getValue("/sms.properties", "sendURL"); //企业id String enterpriseID = ProPertiesUtil.getValue("/sms.properties", "enterpriseID"); //登录名 String loginName = ProPertiesUtil.getValue("/sms.properties", "loginName"); //密码 String password = ProPertiesUtil.getValue("/sms.properties", "password"); //消息id String smsId = ""; //扩展端口 String subPort = ""; //定时发送时间 String sendTime = ""; //post内容 String postContent = ""; //返回结果 String returnXML = ""; try { postContent = "enterpriseID=" + enterpriseID + "&loginName=" + loginName + "&password=" + MD5.toMD5(password) + "&smsId=" + smsId + "&subPort=" + subPort + "&content=" + java.net.URLEncoder.encode(content, "UTF-8") + "&mobiles=" + mobile + "&sendTime=" +sendTime; returnXML = HttpUtil.httpPostRequest(new URL(sendURL), postContent); } catch (Exception e) { // TODO Auto-generated catch block logger.error(e.getStackTrace()); return false; } // System.out.println("sendURL returnXML = " + returnXML); //解释xml结果 Map map = null; map = XmlUtil.getNodeValues(XmlUtil.getRootElement(returnXML)); String result = (String)map.get("Result"); //应用时判断,若该值为0表示成功往下取smsid,若不为0则是相应错误代码。 System.out.println(result); if(result.equals("0")){ //发送成功 String SmsId = (String)map.get("SmsId"); System.out.println(SmsId); if(StringUtil.isNotEmpty(SmsId)){ nFlag = true; // System.out.println("发送成功"); // System.out.println("result = " + result + " SmsId = " + SmsId); } }else{ // System.out.println("发送失败"); } return nFlag; } public static void main(String[] args) throws MalformedURLException, Exception { SmsUtil.sendSms("139999999", "验证码:123123"); } }
工具类:
发送请求:HttpUtil.httpPostRequest
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import java.util.Map; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.log4j.Logger; public class HttpUtil { private static final Logger logger = Logger.getLogger(HttpUtil.class); /** * http post请求 * @param url 地址 * @param postContent post内容格式为param1=value¶m2=value2¶m3=value3 * @return * @throws IOException */ public static String httpPostRequest(URL url, String postContent) throws Exception{ OutputStream outputstream = null; BufferedReader in = null; try { URLConnection httpurlconnection = url.openConnection(); httpurlconnection.setConnectTimeout(10 * 1000); httpurlconnection.setDoOutput(true); httpurlconnection.setUseCaches(false); OutputStreamWriter out = new OutputStreamWriter(httpurlconnection .getOutputStream(), "UTF-8"); out.write(postContent); out.flush(); StringBuffer result = new StringBuffer(); in = new BufferedReader(new InputStreamReader(httpurlconnection .getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); } return result.toString(); } catch(Exception ex){ logger.error("post请求异常:" + ex.getMessage()); throw new Exception("post请求异常:" + ex.getMessage()); } finally { if (outputstream != null) { try { outputstream.close(); } catch (IOException e) { outputstream = null; } } if (in != null) { try { in.close(); } catch (IOException e) { in = null; } } } } /** * 通过httpClient进行post提交 * @param url 提交url地址 * @param charset 字符集 * @param keys 参数名 * @param values 参数值 * @return * @throws Exception */ public static String HttpClientPost(String url , String charset , String[] keys , String[] values) throws Exception{ HttpClient client = null; PostMethod post = null; String result = ""; int status = 200; try { client = new HttpClient(); //PostMethod对象用于存放地址 //总账户的测试方法 post = new PostMethod(url); //NameValuePair数组对象用于传入参数 post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=" + charset);//在头文件中设置转码 String key = ""; String value = ""; NameValuePair temp = null; NameValuePair[] params = new NameValuePair[keys.length]; for (int i = 0; i < keys.length; i++) { key = (String)keys[i]; value = (String)values[i]; temp = new NameValuePair(key , value); params[i] = temp; temp = null; } post.setRequestBody(params); //执行的状态 status = client.executeMethod(post); logger.info("status = " + status); if(status == 200){ result = post.getResponseBodyAsString(); } } catch (Exception ex) { // TODO: handle exception throw new Exception("通过httpClient进行post提交异常:" + ex.getMessage() + " status = " + status); } finally{ post.releaseConnection(); } return result; } /** * 字符串处理,如果输入字符串为null则返回"",否则返回本字符串去前后空格。 * @param inputStr 输入字符串 * @return string 输出字符串 */ public static String doString(String inputStr){ //如果为null返回"" if(inputStr == null || "".equals(inputStr) || "null".equals(inputStr)){ return ""; } //否则返回本字符串把前后空格去掉 return inputStr.trim(); } /** * 对象处理,如果输入对象为null返回"",否则则返回本字符对象信息,去掉前后空格 * @param object * @return */ public static String doString(Object object){ //如果为null返回"" if(object == null || "null".equals(object) || "".equals(object)){ return ""; } //否则返回本字符串把前后空格去掉 return object.toString().trim(); } }
解析XML:
XmlUtil.getNodeValues
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class XmlUtil { private static final Logger logger = Logger.getLogger(XmlUtil.class); /** * 获得根据节点信息 * @param xml xml字符串 * @return */ public static Element getRootElement(String xml){ Document doc = null; Element root = null; try { doc = DocumentHelper.parseText(xml); root = doc.getRootElement(); } catch (Exception ex) { // TODO: handle exception logger.error("解释xml文件出现异常:" + ex.getMessage()); } return root; } /** * 获得指定元素下所有节点属性及值 * @param element * @return */ public static Map getNodeValues(Element element){ Element root = null; Map map = new HashMap(); try { List list = element.elements(); Element e = null; for (int i = 0; i < list.size(); i++) { e = (Element)list.get(i); map.put(e.getName(), e.getText()); } } catch (Exception ex) { // TODO: handle exception logger.error("获得指定元素下所有节点属性及值出现异常: " + ex.getMessage()); } return map; } /** * 获得指定节点指定属性值 * @param element 元素名称 * @param attributeName 属性名称 * @return */ public static String getElementAttributeValue(Element element,String attributeName){ String value = ""; try { value = element.attributeValue("attributeName"); } catch (Exception ex) { // TODO: handle exception logger.error("获得指定节点指定属性值出现异常: " + ex.getMessage()); } return value; } public static void main(String[] args) { try { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Result>0</Result><Mo num=\"2\"><Item id=\"1\" content=\"上行01\" from_mobile=\"13500000000\" to_port=\"0001\" rec_time=\"2013-07-20 13:23:45\"/><Item id=\"2\" content=\"上行02\" from_mobile=\"13600000000\" to_port=\"0002\" rec_time=\"2013-07-20 13:23:45\"/></Mo></Response >"; Map map = XmlUtil.getNodeValues(XmlUtil.getRootElement(xml)); String result = (String)map.get("Result"); System.out.println("result = " + result ); Element mo = XmlUtil.getRootElement(xml).element("Mo"); System.out.println("mo = " + mo); int num = Integer.parseInt(mo.attributeValue("num")); System.out.println("size = " + num); Element item = null; List list = mo.elements(); for (int i = 0; i < list.size(); i++) { item = (Element)list.get(i); System.out.println("id = " + item.attributeValue("id") + " content = " + item.attributeValue("content") + " from_mobile = " + item.attributeValue("from_mobile") + " to_port = " + item.attributeValue("to_port") + " rec_time = " + item.attributeValue("rec_time")); } } catch (Exception e) { // TODO: handle exception System.out.println("ERROR:" + e.getMessage()); } } }
相关推荐
"SmsUtil.zip" 是一个包含阿里大于短信服务API的Java工具类,可以帮助开发者快速集成短信发送功能。下面,我们将深入探讨这个工具类以及相关知识点。 1. **阿里大于短信平台** 阿里大于(现更名为阿里云通信)是...
`SmsUtil.zip_SMSutil`这个压缩包文件显然包含了用于发送短信的工具类`SmsUtil.java`,它提供了方便的方法来实现这一功能。下面我们将深入探讨`SmsUtil`类可能包含的关键知识点。 首先,`SmsUtil`类很可能是一个...
阿里发送短信封装类(AliyunSmsUtils.java)其中工具类中有很多需要替换的地方,阿里发送短信封装类(AliyunSmsUtils.java)阿里发送短信封装类(AliyunSmsUtils.java)
4. 使用示例:在Python代码中,你可以导入smsutil模块,然后调用它的方法,如`smsutil.decode()`用于解码接收到的编码短信,`smsutil.encode()`用于编码要发送的短信,以及`smsutil.concat_sms()`用于组合短信片段。...
在Java开发中,有时我们需要集成短信服务来实现验证码发送、通知提醒等功能。阿里云提供了这样的服务,通过其SDK我们可以方便地在Java应用中发送短信。本文将深入解析如何使用Java发送阿里短信,以及如何利用封装好...
接下来,`SmsUtil` 类用于与阿里云短信服务进行交互。这里定义了两个关键的静态变量:`KEYID` 和 `SECRET`,它们是阿里云账户的访问密钥ID和密钥,用于身份验证。`createClient` 方法根据这些密钥创建了一个阿里云...
3、按照SmsUtil中的说明(示例代码)即可实现给特定手机号发送短信验证码 该jar包依赖: <groupId>com.google.code.gson</groupId> <artifactId>gson <version>2.3.1 <groupId>org.apache.httpcomponents ...
JNI(Java Native Interface)是Java平台提供的一种原生接口,用于在Java代码中调用本地(操作...在短信猫项目中,通过JNI调用C++编写的短信接口,Java程序可以方便地发送和接收短信,实现了与第三方短信服务器的通信。
利用HttpClient的一个非阿利大于发短信的工具类,下载调试即可使用。
接着,你可以参考提供的DEMO代码,如`SmsDemo.java`,创建自己的工具类,如`SmsUtil.java`,用于封装发送短信的逻辑。在代码中,需要设置产品名称和域名,并替换为自己的Access Key ID和Access Key Secret(简称AK)...
在这个示例中,`SMSUtil.send(phone, smsText)`是调用封装好的短信接口发送工具类,它负责将验证码通过HTTP请求发送到第三方短信平台。你需要将`API_KEY`替换为你实际获取的API密钥。 至此,短信验证码的发送流程...
xnx3-2.2.jar 快速开发工具类,用最简洁的命令实现想要的功能。辅助模拟开发。 当前屏幕上搜索某个图像是否存在,并拿到搜索到的图片... SMSUtil.send("17076012262", "这是短信内容"); 发送给一封邮件 MailUtil.se
链接如下 https: //github.com/wenyaxinluoyang/zhixinRecruit还有一点,SMSUTIL类中的API key是我花在筋斗云平台买的短信服务,希望下载代码的自己花钱买服务,不要用我的。代码写的不好,将来会重构,忘掉多体谅。
`ExcelUtils`将Excel文件转换为List对象,`JWTUtil`用于生成、验证和提取Token,`LoggerUtil`简化日志记录,`NoPermissionException`处理Shiro未授权异常,`SmsUtil`是阿里云短信服务的工具类,`WeekTimeUtil`处理...