新收集的WAPPUSH代码,并经过改造

    技术2022-05-11  69

    package com.wap;

    import java.io.IOException;import java.sql.Date;

    public class WapPush{  public int sendSMS(String[] mobile_nos, byte[] msg)  {。。。。  return 0; }

     public static String getSMSPush(String url, String subject, String startTime,          String endTime) {  String pushString = "";  String body = "";  body += "02";  body += "05"; //-//WAPFORUM//DTD SI 1.0//EN  body += "6A"; //UTF-8  body += "00"; //字符串结�?  body += "45"; //<si>  body += "C6"; //<indication  body += "08"; //<action=signal-high>  body += "0C"; //href="http://  body += "03"; //字符串开�?  body += byteArrayToHexString(url.getBytes()); //实际地址  body += "00"; //字符串结�?  body += "0A"; //created=  body += "C3"; //'时间  body += "07"; //时间字节�?  body += startTime; //YYYYMMDDHHMMSS  body += "10"; //si_expires=  body += "C3"; //时间  body += "07"; //时间字节�?  body += endTime; //YYYYMMDDHHMMSS  body += "01"; //>  body += "03"; //字符串开�?  try  {   body += byteArrayToHexString(subject.getBytes("utf-8")); //显示给用户的内容,用utf-8编码。utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)  }  catch (Exception ex)  {  }  body += "00"; //字符串结�?  body += "01"; //</indication>"  body += "01"; //'</si>  int length = body.length();  String pud = "";  pud += "81"; //transaction id (connectionless WSP)  pud += "06"; //'pdu type (06=push)  pud += "06"; //Headers len  pud += "03";  pud += "AE";  pud += "81";  pud += "EA"; //content type: application/vnd.wap.sic; charset=utf-8  pud += "8D"; //content-length  pud += Integer.toHexString(length).toUpperCase();  String udh = "";  udh += "06"; //User Data Header Length (6 bytes)  udh += "05"; //UDH Item Element id (Port Numbers)  udh += "04"; //UDH IE length (4 bytes)  udh += "0B";  udh += "84"; //destination port number  udh += "23";  udh += "F0"; //origin port number  pushString = udh + pud + body;  System.out.println(pushString);  return pushString; }  public static String byteArrayToHexString(byte b[]) {  String result = "";  for (int i = 0; i < b.length; i++)   result = result + byteToHexString(b[i]);  return result; }

     public static String byteToString(byte b[]) {   String result = "";  for (int i = 0; i < b.length; i++)  {   result = result + b[i];  }  return result; }

     public static String byteToHexString(byte b) {  int n = b;  if (n < 0)   n = 256 + n;  int d1 = n / 16;  int d2 = n % 16;  return HexCode[d1] + HexCode[d2]; }

     private static String HexCode[] = {  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",  "A", "B", "C", "D", "E", "F" };

     private static String getUTFString(final String gbString) {  if (gbString == null)   return "";  char[] utfBytes = gbString.toCharArray();  String unicodeBytes = "";  for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++)  {   String hexB = "";   if (utfBytes[byteIndex] < '!')   {    hexB = Integer.toHexString(utfBytes[byteIndex]);    if (hexB.length() <= 2)    {     hexB = "00" + hexB;    }    unicodeBytes = unicodeBytes + "&#x" + hexB + ";";   }   else   {    unicodeBytes += utfBytes[byteIndex];   }  }  return unicodeBytes; }  public static int StringToByte(String str) {  int ret = 0;  for(int i=0;i<HexCode.length;i++)  {   if(HexCode[i].equalsIgnoreCase(str))    return i;  }   return ret; }  public static byte[] stringToBytes(String str) {  if(str==null||str.equals(""))   return null;    byte[] bytes = new byte[str.length()/2];  for(int i=0;i<bytes.length;i++)  {   String high = str.substring(i*2,i*2+1);   String low = str.substring(i*2+1,i*2+2);   bytes[i] = (byte) (StringToByte(high)*16 + StringToByte(low));  }  return bytes; }  public static void main(String[] args) {

      WapPush wp= new WapPush();    

      String[] mobile_nos = {"13812345678"};  

      int i = wp.sendSMS(mobile_nos,   WapPush.stringToBytes(    WapPush.getSMSPush("wap.monternet.com","monternet",      new java.text.SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis())),      new java.text.SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis()))      )));

     }} 


    最新回复(0)