`

短信发送例子

阅读更多
时至今日,短信验证提醒已经司空见惯。一个小例子,记录一下公司集成短信的过程,其实这些demo一般短信服务商都会提供。作为一个常见应用例子,记之。
package com.jq.test;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;



public class SmsClient {
	protected String smsSvcUrl = "http://****:8860";	   //服务器URL 地址
	protected String cust_code = "****";									 //账号
	protected String password = "****";		 								//密码
	protected String sp_code = "****";                  //接入码(扩展码)
	
	public void sendSms(String mobiles, String content) throws IOException {
		sendSms(mobiles, content, sp_code, 0);
	}

	public void sendSms(String mobiles, String content, long task_id)
			throws IOException {
		sendSms(mobiles, content, sp_code, task_id);
	}

	public void sendSms(String mobiles, String content, String sp_code)
			throws IOException {
		sendSms(mobiles, content, sp_code, 0);
	}

	public void sendSms(String mobiles, String content, String sp_code,
			long task_id) throws IOException {
		String urlencContent = URLEncoder.encode(content,"utf-8");
		//String sign = MD5.getMD5((urlencContent + password).getBytes());
        String sign=MD5.sign(urlencContent, password, "utf-8");
		String postData = "content=" + urlencContent + "&destMobiles="
				+ mobiles + "&sign=" + sign + "&cust_code=" + cust_code
				+ "&sp_code=" + sp_code + "&task_id=" + task_id;
		System.err.println(postData);
		URL myurl = new URL(smsSvcUrl);
		URLConnection urlc = myurl.openConnection();
		urlc.setReadTimeout(1000 * 30);
		urlc.setDoOutput(true);
		urlc.setDoInput(true);
		urlc.setAllowUserInteraction(false);

		DataOutputStream server = new DataOutputStream(urlc.getOutputStream());
		//System.out.println("发送数据=" + postData);

		server.write(postData.getBytes("utf-8"));
		server.close();

		BufferedReader in = new BufferedReader(new InputStreamReader(
				urlc.getInputStream(), "utf-8"));
		String resXml = "", s = "";
		while ((s = in.readLine()) != null)
			resXml = resXml + s + "\r\n";
		in.close();
		System.out.println("接收数据=" + URLDecoder.decode(resXml,"utf-8"));
	}
	
	public static void main(String[] args) {
		SmsClient client = new SmsClient();
		try {
			client.sendSms("电话号码", "你好这是测试数据");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

package com.jq.test;

import java.io.UnsupportedEncodingException;
import java.security.SignatureException;
import org.apache.commons.codec.digest.DigestUtils;

/** 
* 功能:签名处理核心文件
* 修改日期2012-08-17
* */

public class MD5 {

    /**
     * 签名字符??
     * @param text 签名的字符串
     * @param key 密钥
     * @param input_charset 编码格式
     * @return 签名结果
     */
    public static String sign(String text, String key, String input_charset) {
    	text = text + key;
        return DigestUtils.md5Hex(getContentBytes(text, input_charset));
    }
    
    /**
     * 签名字符?
     * @param text 签名的字符串
     * @param sign 签名结果
     * @param key 密钥
     * @param input_charset 编码格式
     * @return 签名结果
     */
    public static boolean verify(String text, String sign, String key, String input_charset) {
    	text = text + key;
    	String mysign = DigestUtils.md5Hex(getContentBytes(text, input_charset));
    	if(mysign.equals(sign)) {
    		return true;
    	}
    	else {
    		return false;
    	}
    }

    /**
     * @param content
     * @param charset
     * @return
     * @throws SignatureException
     * @throws UnsupportedEncodingException 
     */
    private static byte[] getContentBytes(String content, String charset) {
        if (charset == null || "".equals(charset)) {
            return content.getBytes();
        }
        try {
            return content.getBytes(charset);
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("MD5签名过程中出现错??指定的编码集不对,您目前指定的编码集是:" + charset);
        }
    }

}


分享到:
评论

相关推荐

    安卓短信发送例子

    在本文中,我们将深入探讨如何在Android应用中实现短信发送,并提供相关的代码示例。 首先,我们需要了解Android系统对短信发送的权限管理。在Android 6.0(API级别23)及更高版本中,应用需要在运行时请求`SEND_...

    Android例子源码可以定时批量发送短信的短信时光机.rar

    Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...

    Java短信发送所需Jar包+源码

    标签中的"java短信源码"和"短信发送例子"暗示了这个资源可能包含了一些流行的第三方库,如SMPP(Short Message Peer-to-Peer)库,如Apache's JSMPP,它是一个开源的Java实现,用于处理SMPP协议,广泛用于短信服务...

    JAVA联通短信代码

    6. **异步处理**:考虑到短信发送可能会比较耗时,通常会采用异步方式来处理,避免阻塞主线程,提高系统的响应速度。 7. **批量发送**:对于大量用户的短信发送,可以使用批量操作来提高效率,减少网络往返时间。 ...

    发短信小例子(Android)

    这个"发短信小例子"就是一个简单的实现,旨在帮助开发者理解如何在Android应用中集成短信发送功能。下面将详细讲解这个功能的实现步骤、核心代码以及需要注意的关键点。 首先,Android系统提供了一个名为`...

    pb 发送短信代码例子 学习

    标题中的“pb 发送短信代码例子 学习”表明我们将探讨使用PowerBuilder(PB)进行短信发送的编程实践。PowerBuilder是一种流行的、基于事件驱动的编程环境,主要用于开发企业级的应用程序,尤其在数据库应用方面。这...

    em310短信例子发送短信流程

    EM310短信发送流程是通过串行通信与EM310模块进行交互,实现短信的发送。在这一过程中,主要涉及到了多个AT命令,包括设置短信编码、短信模式、新消息指示、发送短信以及短信管理等关键步骤。以下是详细的步骤解析:...

    Android例子源码可以定时批量发送短信的短信时光机

    Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...

    java 发短信例子

    本示例将深入探讨如何使用Java实现短信发送,包括JSP(Java Server Pages)的应用,以及可能涉及的jar包和文档。下面我们将详细讨论相关知识点。 1. **Java SMS API**: Java中发送短信主要依赖于第三方提供的SMS...

    pdu_发送短信的例子参考

    通过上述解析,我们可以看出PDU模式提供了更精细的短信发送和接收控制,特别是在处理复杂字符集或多语言环境时非常有用。理解PDU模式的基本概念及其实际应用可以帮助开发人员更高效地处理短信服务。

    发送短信API接口及其例子程序

    API接口的例子程序,请参看本文章:清扬短信服务器发送短信API接口说明和例子程序,下载例子:qySrc_smDemo,可以编译测试。该例子qySrc_smDemo利用动态装载将dll装入,找到相关函数地址,即可在后面调用。在使用时,...

    java短信猫收发短信的例子

    发送完成后,短信猫会返回一个确认信息,程序需要监听并解析这些响应,以确保短信发送成功。 接收短信则相对简单,Java程序需要定期查询短信猫是否有新消息,这通常通过发送"AT+CMGL"命令来实现。接收到短信后,...

    用java实现的短信发送

    Java 实现短信发送 Java 实现短信发送是指利用 Java 语言编写程序来实现服务器向手机发送短信的过程。...这个例子展示了如何使用 Java 语言来实现短信发送。我们可以使用这个例子作为参考,然后根据需要修改和扩展。

    C#调用阿里云短信平台接口发送短信.rar

    在IT行业中,尤其是在软件开发领域,与云服务的集成已经成为不可或缺的一部分。阿里云作为国内领先的云服务...理解并掌握这些知识点,可以帮助开发者顺利实现与阿里云短信服务的交互,从而提供稳定可靠的短信发送功能。

    asp短信整合例子

    在"asp短信整合例子"这个主题中,我们主要关注的是如何在ASP环境中集成短信发送功能。这通常涉及到与第三方短信服务提供商的API交互,以实现从Web应用向指定手机发送短信。 在ASP中实现短信发送,首先你需要了解...

    java发送手机短信例子及jar包

    下面将详细解释如何使用Java进行手机短信发送,以及涉及到的关键技术和库。 首先,Java发送手机短信通常需要借助第三方服务提供商,如阿里云、腾讯云等,它们提供了短信接口服务。你需要在这些服务商的平台上注册...

    MAS短信发送代码可以免费发短信

    **MAS短信发送技术详解** MAS(Mobile Application Server)短信发送技术是一种通过移动应用服务器实现的短信通讯功能。在IT行业中,MAS通常被用作企业级解决方案,用来集成短信服务到各种业务系统中,如客户服务、...

    易语言-聚合数据发送短信例子

    5. **源码分析**:在压缩包中的“聚合数据短信发送例子”文件,很可能是实现了上述功能的源代码。通过阅读和分析这个例子,你可以学习到如何在易语言中组织程序结构,如何调用网络请求,以及如何处理返回的数据。 6...

    android 短信发送

    这个"android 短信发送"的例子提供了一个简单的实现,让我们深入了解一下如何在Android应用中实现短信发送。 首先,我们需要了解Android的权限管理。在AndroidManifest.xml文件中,必须声明`<uses-permission>`标签...

    PDU短信息发送案例

    在IT行业中,短信息服务(SMS)是一种广泛使用的通信方式,尤其在物联网设备和嵌入式系统中。本文主要探讨的是使用Wavecom短信猫通过PDU...了解并熟练掌握PDU模式的短信发送对于开发基于GSM的通信系统至关重要。

Global site tag (gtag.js) - Google Analytics