📄 wappush.java
字号:
package com.zhanghao.cmpp;
import java.io.*;
public class WapPush {
public String destNumber = "13873191718";
public String pushUrl = "sohu.com";
public String pushTitle = "te";
private CharArrayWriter charWrite = new CharArrayWriter();
/*******************************************************************************************
00 SMSC 地址信息的长度 00表示用手机上设置短信中心号码,PDU 串的“SMSC 址格式”段和“SMSC 地址”段将省去
51 基本参数(TP-MTI/VFP) 不要求发送回复
00 消息基准值(TP-MR)
0B 对方电话的长度
A1 目标地址格式 A1表示为国内格式
3108086406F6 目标地址,补‘F’凑成偶数位后奇偶位互换
00 协议标识(TP-PID) 是普通GSM 类型,点到点方式
F5 用户信息编码方式 (TP-DCS)
A7 有效期(TP-VP)
85 用户信息长度(TP-UDL)
0B WAP PUSH头部的总长度
05040B8423F0表示接下来是一个WAP PUSH
00 表示是Concatenated Short Messages
03 长度
03 reference number
01 表示分成1个短信发送
01 当前包的序号
29060603AE81EA8DCA WSP
02 标记位
05 -//WAPFORUM//DTD SI 1.0//EN
6A UTF-8
00 标记开始
45
C6
08
0C href="http://
03 字符串开始
3231312e3133362e3135332e33302f776170707573682f
70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231 URL
00 URL 字符串结束
01 >
03 内容描述字符串开始
E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA_
5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9 内容描述字符串
00 内容描述字符串结束
01
01
******************************************************************************/
/**
00 SMSC 地址信息的长度 00表示用手机上设置短信中心号码,PDU 串的“SMSC 址格式”段和“SMSC 地址”段将省去
51 基本参数(TP-MTI/VFP) 不要求发送回复
00 消息基准值(TP-MR)
0B 对方电话的长度
A1 目标地址格式 A1表示为国内格式
*/
public char[] c1 = {0x00,0x51,0x00,0x0B,0xA1};
/**
00 协议标识(TP-PID) 是普通GSM 类型,点到点方式
F5 用户信息编码方式 (TP-DCS)
A7 有效期(TP-VP)
85 用户信息长度(TP-UDL)
0B WAP PUSH头部的总长度
05040B8423F0表示接下来是一个WAP PUSH
00 表示是Concatenated Short Messages
03 长度
03 reference number
*/
public char[] c2 = {0x00,0xF5,0xA7,0x85,0x0B,0x05,0x04,0x0B,0x84,0x23,0xF0}; //11
public char[] c3 = {0x00,0x03,0x03};
public char iMsgNumber = 0x01; //01 表示分成1个短信发送
public char iMsgCurSeq = 0x01; //01 当前包的序号
public char[] c4 = {0x29,0x06,0x06,0x03,0xAE,0x81,0xEA,0x8D,0xCA}; //29060603AE81EA8DCA WSP
/**
02 标记位
05 -//WAPFORUM//DTD SI 1.0//EN
6A UTF-8
00 标记开始
45
C6
08
0C href="http://
03 字符串开始
*/
public char[] c5 = {0x02,0x05,0x6A,0x00,0x45,0xC6,0x08,0x0C,0x03};
public char[] cUrl = pushUrl.toCharArray();
/**
00 URL 字符串结束
01 >
03 内容描述字符串开始
*/
public char[] c6 = {0x00,0x01,0x03};
public char[] cTitle = pushTitle.toCharArray();
/**
00 内容描述字符串结束
01
01
*/
public char[] c7 = {0x00,0x01,0x01};
public WapPush() {
}
public WapPush(String _destNumber,String _pushUrl,String _pushTitle){
this.destNumber = _destNumber;
this.pushUrl = _pushUrl;
this.pushTitle = _pushTitle;
}
public char[] formatPushNumber(String sPhoneNumber){
String sTemp = sPhoneNumber + "F";
char[] cTemp = sTemp.toCharArray();
char[] cDest = new char[cTemp.length];
for(int i=0;i<cDest.length/2;i++){
cDest[i*2] = cTemp[i*2+1];
cDest[i*2+1] = cTemp[i*2];
}
return cDest;
}
public char[] getFormatPushMsg(){
String sDest = "" ;
return sDest.toCharArray();
}
public static void main(String args[]) throws Exception{
WapPush wap = new WapPush("13873191718","www.sohu.com","test");
char[] cc = new String(wap.toCharArray()).toCharArray();
for(int i=0;i<cc.length;i++){
System.out.print((byte)cc[i] +" ");
}
System.out.println();
System.out.println(new String(wap.toCharArray()).getBytes().length);
}
public char[] toCharArray() throws Exception{
charWrite.write(c1);
charWrite.write(formatPushNumber(this.destNumber));
charWrite.write(c2);
charWrite.write(c3);
charWrite.write(iMsgNumber);
charWrite.write(iMsgCurSeq);
charWrite.write(c4);
charWrite.write(c5);
charWrite.write(pushUrl.toCharArray());
charWrite.write(c6);
charWrite.write(pushTitle.toCharArray());
charWrite.write(c7);
return charWrite.toCharArray();
}
public static void main2(String args[]) throws Exception{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -