码迷,mamicode.com
首页 > 其他好文 > 详细

SignUtil

时间:2018-04-25 17:01:23      阅读:1230      评论:0      收藏:0      [点我收藏+]

标签:ack   sel   tps   csdn   comment   track   strong   分享   bsp   

最近接的新项目 加密比较多  我就记录下。

SignUtil是jnewsdk-mer-1.0.0.jar  com.jnewsdk.util中的一个工具类。由于我没有百度到对应的信息。所以我只能看源码了。。百度不到,使我成长。

 

技术分享图片

恩恩。。

我们先来看parseParam 

  1.   
  1.   
  1.   
  1. /** 
  2.     * 把请求变为Map格式 
  3.     * @param request 
  4.     * @return 
  5.     */  
  6.    public static Map parseParam(HttpServletRequest request)  
  7.    {  
  8.        Map map = new HashMap();  
  9.        //request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).  
  10.        // 返回一个Enumeration类型的枚举.  
  11.        Enumeration paramsEnum = request.getParameterNames();  
  12.        //boolean hasMoreElements( )  
  13.        //测试此枚举是否包含更多的元素  
  14.        while (paramsEnum.hasMoreElements())  
  15.        {  
  16.            //   Object nextElement( )  
  17.            //如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素  
  18.            String paramName = (String)paramsEnum.nextElement();  
  19.            //根据Name得到Value  
  20.            String paramValue = request.getParameter(paramName);  
  21.            map.put(paramName, paramValue);  
  22.        }  
  23.        return map;  
  24.    }  

所以,这个方法其实就是把request请求变为key,value的格式。

  1. public static Map parseResponse(String msg)  
  2. {  
  3.     Map map = new HashMap();  
  4.     int beginIndex = 0;  
  5.     int endIndex = 0;  
  6.     String key;  
  7.     //for(;;) 这是一个死循环,用来等待中断  
  8.     for (;;)  
  9.     {  
  10.         //判断"="第一次出现的值  
  11.         endIndex = msg.indexOf("=", beginIndex);  
  12.         key = null;  
  13.         value = null;  
  14.         //enindex小于0  那么就是"="不存在这个msg中,就返回null的map  
  15.         //endindex等于0也是返回null的map  
  16.         if (endIndex <= beginIndex) {  
  17.             return map;  
  18.         }  
  19.         //截取0到“=”之前的值  
  20.         key = msg.substring(beginIndex, endIndex);  
  21.   
  22.         //得到“=”之后一位的下标值  
  23.         beginIndex = endIndex + 1;  
  24.   
  25.         if (beginIndex >= msg.length())  
  26.         {  
  27.             map.put(key, "");  
  28.             return map;  
  29.         }  
  30.         //判断"="后面是“{”吗》  
  31.         if (msg.charAt(beginIndex) == ‘{‘) {  
  32.             //得到“}”的位置+1  
  33.             endIndex = msg.indexOf("}", beginIndex) + 1;  
  34.         } else {  
  35.             endIndex = msg.indexOf("&", beginIndex);  
  36.         }  
  37.         if (endIndex < beginIndex) {  
  38.             break;  
  39.         }  
  40.         value = msg.substring(beginIndex, endIndex);  
  41.         map.put(key, value);  
  42.   
  43.         beginIndex = endIndex + 1;  
  44.     }  
  45.     String value = msg.substring(beginIndex);  
  46.     map.put(key, value);  
  47.       
  48.     return map;  
  49. }  

这个也是把响应变为Map

SignUtil

标签:ack   sel   tps   csdn   comment   track   strong   分享   bsp   

原文地址:https://www.cnblogs.com/xuxu00/p/8945230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!