您现在的位置: J2ME开发网 >> WAP开发 >> 高级开发 >> 文章正文
PUSH SMS消息开发的范例
作者:未知    文章来源:sp论坛    点击数:    更新时间:2006-3-21

wap push包的构成:
WDP+WSP+SI/SL

[范例]
06 05 04 0B 84 23 F0 81 06 06 03 8D 82 02 05 6A 00 45 C6 08 0C 03 77 75 68 61 6e 32 2e 70 70 63 6f 6d 

6d 2e 63 6f 6d 2f 77 61 70 74 65 73 74 2f 74 65 73 74 2e 61 73 70 78 00 0A C3 07 20 03 01 01 00 00 00 10

 C3 07 20 04 01 01 00 00 00 01 03 41 6c 6c 46 61 73 74 20 54 65 73 74 00 01 01 

1、单包:
Total:(XX为未固定)
06 05 04 0B 84 23 F0 81 06 06 03 8D XX 02 05 6A 00 45 C6 08 0C 03 XX 00 0A C3 07 20 03 01 01 00 00 00 

10 C3 07 20 04 01 01 00 00 00 01 03 XX 00 01 01 

WDP(UDH):
06 05 04 0B 84 23 F0
/************************
解释:
06      'User Data Header Length (6 bytes)
05      'UDH Item Element id (Port Numbers)
04      'UDH IE length (4 bytes)
0B 84   'destination port number
23 F0   'origin port number
*************************/

WSP(Push PDU):
81 06 06 03 8D XX
/************************
解释:
81             'transaction id (connectionless WSP)
06             'pdu type (06=push)
06             'Headers len
03 AE 81 EA    'content type: application/vnd.wap.sic; charset=utf-8
8D             'content-length
XX             '这里就是Push消息体的长度
*************************/

SI/SL(Push消息体):
02
05  '-//WAPFORUM//DTD SI 1.0//EN
6A  'UTF-8
00
45  '<si>
C6  '<indication
08  '<action=signal-high>
0C  'href=\"http://
03  '字符串开始
    '这里就是url从\"http://\"以后的那部分的每个字符的ASCII码
00  '字符串结束
0A  'created=
C3  '时间
07  '7个字节,也可以是04,下面就只需要年月日就可以了
20 03 01 01 00 00 00 '年,月,日,时,分,秒,格式如何一看就明白吧。
10  'si_expires=
C3  '时间
07  '7个字节,也可以是04,下面就只需要年月日就可以了
20 04 01 01 00 00 00  '跟上面一样
01  '>
03  '字符串开始
    '这里就是显示给用户的内容,用utf-8编码。
    'utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)abcdefgh ijklmnop,
    '那么utf-8就会变成1110abcd 10efghij 10klmnop
00  '字符串结束
01  '</indication>\"
01  '</si>

2、多包
WDP1 + (WSP+SI/SL)的part 1
WDP2 + (WSP+SI/SL)的part 2
...
WDPN + (WSP+SI/SL)的part N