⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smssender.java

📁 企业短信网关webservice接口参考文档可完成sms客户端
💻 JAVA
字号:
/**
 * 短信平台客户端编程实例
 *
 * 描述:
 * <ol>
 *  <li>开发语言为JAVA,该说明适用于JAVA程序员
 *  <li>该实例适用于windows, Linux, 所有UNIX(可安装JDK1.3以上版本和JCE)操作系统,不能用于手
 *    持设备。
 *      注:如果使用JDK1.4以上版本不需要额外安装JCE。如果使用JDK1.3x,请安装JCE。
 *  <li>该实例采用了Apache组织的axis项目的库完成SOAP协议Over HTTP功能,版本是1.1RC2,你也可以
 *    采用其他你所熟悉的SOAP兼容库。
 *      Apache AXIS的详细介绍请参见http://ws.apache.org/axis/
 *  <li>通过SSL发送短信的实现参照该方式自行解决
 *  <li>该程序的逻辑说明请参见短信平台客户端开发的相关文档
 *  <li>该程序只作为参考实现,未考虑运行效率,请客户端开发者根据自己的实际情况修改,例如尽量减少网络连接请求次数等
 * </ol>
 *
 * 使用步骤:
 * 1)利用axis的wsdl2java工具生成soap存根
 *     命令行为: java -cp "<axis_jar_lib>" org.apache.axis.wsdl.WSDL2Java <your_wsdl_url>
 * 2)将生成的存根导入你的开发工程,这里是"smstest.smsservice.sMsg_asmx.*"
 * 3)如该程序所示的进行调用
 *
 * 作者: huaxiaotao@tomosoft.com
 * 版本: 1.0.0
 */

import java.io.*;
import java.util.*;
import java.net.*;
import org.w3c.dom.*;
import java.security.*;
import javax.crypto.*;
import smstest.smsservice.sMsg_asmx.*; //axis生成存根

public class smssender {
  /**
   *发送者的用户名
   */
  static String user = "bluetiger";

  /**
   *发送者的密码
   */
  static String pwd = "123";

  /**
   *发往服务器的hash结果
   */
  static String hash = "";

  /**
   *服务器返回的随机串
   */
  static String rand_str = "";

  public smssender() throws Exception {
    try {
      //取得soap存根接口
      SMsgSoap soap = new SMsgLocator().getSMsgSoap();
      //取得随机字符串
      rand_str = soap.getRandom();
      //hash密码与随机字符串
      hash();
      //发送短信,第一个参数为企业特服号,倒数第二个参数为源号码(即显示在接收方手机上的“来自”号码)
      soap.send("010099999", user, rand_str, hash, "hello j2ee", "13910981155", "010099999","");
    } catch (org.apache.axis.AxisFault e) {
      System.out.println(e.dumpToString());
    }
  }

  /**
  *使用MD5算法HASH密码,结果转存为十六进制串。
  *然后将服务器传过来的随机串和密码的HASH结果连接
  *再次使用MD5进行HASH运算,保存十六进制串结果到变量'hash'
  */
  public void hash() throws Exception{
    if (rand_str.length() == 0) return;

    byte[] plainText = pwd.getBytes("UTF8");
    MessageDigest messageDigest = MessageDigest.getInstance("MD5");
    messageDigest.update(plainText);
    byte[] buf = messageDigest.digest();

    for (int i = 0; i < buf.length; i++) {
      int temp;
      if (buf[i] < 0) temp = 256 + buf[i];
      else temp = buf[i];
      if (temp < 16) hash += "0";
      hash += Integer.toString(temp, 16);
    }
    hash = hash.toUpperCase();
    System.out.println("hash result1 is:" + hash);

    plainText = (rand_str + hash).getBytes("UTF-8");
    messageDigest.update( plainText);
    buf = messageDigest.digest();
    hash = "";
    for (int i = 0; i < buf.length; i++) {
      int temp;
      if (buf[i] < 0) temp = 256 + buf[i];
      else temp = buf[i];
      if (temp < 16) hash += "0";
      hash += Integer.toString(temp, 16);
    }
    hash = hash.toUpperCase();
    System.out.println("hash result2 is:" + hash);
  }

  public static void main(String[] args) throws Exception {
    smssender smssender1 = new smssender();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -