东软SMIAS Java API移动短信接入JUnit TestCase

此博客展示了使用Java和JUnit进行CMPP协议相关测试的代码。代码包含连接、登录、提交消息等操作,还处理了各种异常情况,如登录失败、提交异常等,同时对不同响应包类型进行了相应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package sms.test;

import com.commerceware.cmpp.*;
import junit.framework.TestCase;


public class JFTest extends TestCase {
 
 protected void setUp() throws Exception {
  super.setUp();
  
 }

 protected void tearDown() throws Exception {
  super.tearDown();
 }
 
 public void testJF()
 {
  cmppe_result result = null;

  CMPP cmpp = new CMPP();
  conn_desc connDesc = new conn_desc();

  String loginID = "0****3";
  String userID = "099****3/0";
  String password = "your pwd";
  String icpID = "9****2/0";
  String dst = "13950009***/0";
  String mess = "全长20位,不推荐全用/0";
  String svcType = "44****/0";

  String ip = "211.*.*.*";
  int port = 7890;

  System.out.println("开始运行...");
  try{
   cmpp.cmpp_connect_to_ismg(ip, port, connDesc);
   System.out.println("连接完毕!");
   cmpp.cmpp_login(connDesc, loginID, password, (byte)2, 0x12, (int)System.currentTimeMillis());      
   result = cmpp.readResPack(connDesc);

   if (result.stat != CMPP.CMPPE_RSP_SUCCESS){
    System.out.println("登录失败 " + result.stat);
    System.exit(0);
   }else{
   }
  }catch(Exception e){
   System.out.println("登录失败 " + e);
   System.exit(0);
  }
  System.out.println("登录成功");
  
  cmppe_submit submitStruct = new cmppe_submit();
  try{
   submitStruct.set_svctype(svcType.getBytes());
   submitStruct.set_srcaddr(userID.getBytes());
   submitStruct.set_ducount((byte)1);
   byte[][] dstByte= {{0,0},{0,0}};
   dstByte[0] = dst.getBytes();
   submitStruct.set_dstaddr(dstByte);
   submitStruct.set_msgmode((byte)1);
//   submitStruct.set_feetype((byte)1);
//   submitStruct.set_infofee(300);
   byte[] message = mess.getBytes();
   submitStruct.set_msg((byte)15, message.length, message);
   submitStruct.set_icpid( icpID.getBytes());
   cmpp.cmpp_submit(connDesc, submitStruct);
   
 
  }catch(Exception e){
   System.out.println("异常失败 " + e);
   System.exit(1);
  }

  
  try{
   for(;;){
    result= cmpp.readResPack(connDesc);
    switch(result.pack_id){
     case CMPP.CMPPE_NACK_RESP:
      System.out.println("Get Nack Pack");
      break; 
     case CMPP.CMPPE_SUBMIT_RESP:
      System.out.println("Get Sumit Resp. stat = " + result.stat);
      break;  
     case CMPP.CMPPE_DELIVER:
      cmppe_deliver_result deliverResult = (cmppe_deliver_result)result;
      System.out.println("Deliver Status  Rpt " + deliverResult.status_rpt);     
      System.out.println("Deliver Src " + new String(deliverResult.src_addr));
      System.out.println("Deliver Dst " + new String(deliverResult.dst_addr));
      System.out.println("Deliver Message "+ new String(deliverResult.short_msg,"GB2312"));
      cmpp.cmpp_send_deliver_resp(connDesc, deliverResult.seq, deliverResult.stat);
      break;   
    }    
   }  
  }catch(Exception e){
   System.out.println("异常退出 " + e);
  }  
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值