获取PushMagic、Token、Topic、UDID、UnlockToken等数据

分类: 首页- >MDM专栏 | 阅读: 5720 | 评论: 1 | 2014-07-24 16:13:37 
摘要:在MDM的Check In URL中有两个重要的请求,即Authenticate和TokenUpdate方法,这两个方法是设备(Device)在安装mobileconfig配置问价的时候请求MDM Server两次请求中的请求类型,第一个表示向服务器认证,第二个表示向服务器提交Toke你的更新信息
1、MDM的的TokenUpdate请求
在MDM的Check In URL中有两个重要的请求,即Authenticate和TokenUpdate方法,这两个方法是设备(Device)在安装mobileconfig配置问价的时候请求MDM Server两次请求中的请求类型,第一个表示向服务器认证,第二个表示向服务器提交Toke你的更新信息,两次请求的参数参考:

(1)、认证:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>MessageType</key>
        <string>Authenticate</string>
        <key>Topic</key>
        <string>com.apple.mgmt.External.7a5623fb-b819-400e-80f5-3f98d6bff20c</string>
        <key>UDID</key>
        <string>377239059a83c780c4a73fec1d902157f8bc6a10</string>
</dict>
</plist>

(2)、更新Token:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>MessageType</key>
        <string>TokenUpdate</string>
        <key>PushMagic</key>
        <string>784C1B53-4EE2-41B4-8F24-6AB663ECEA1E</string>
        <key>Token</key>
        <data>
        5RStvQKnb25Fuw0gBFnWAM0GDTGJPec3C2sSkl80x/4=
        </data>
        <key>Topic</key>
        <string>com.apple.mgmt.External.7a5623fb-b819-400e-80f5-3f98d6bff20c</string>
        <key>UDID</key>
        <string>377239059a83c780c4a73fec1d902157f8bc6a10</string>
        <key>UnlockToken</key>
        <data>
        REFUQQAABPRWRVJTAAAABAAAAANUWVBFAAAABEAAAAJVVUlEAAAAEGzXeUjt30uNhqDM
        GnMkIThITUNLAAAAKH4x8CqY3uNL+ZcpCnPxuGIN9H7ARrl/T2zrnD85O2KUkskMjiP2
        VyVXUkFQAAAABAAAAAFTQUxUAAAAFPlpaA8zBRTpCpXdavtLj7BSfbnYSVRFUgAAAAQA
        AMNQVVVJRAAAABClyVFQ0SRJfq+PRSNW68dAQ0xBUwAAAAQAAAABV1JBUAAAAAQAAAAD
        S1RZUAAAAAQAAAAAV1BLWQAAACh27xRHIQiIRhmYypiPmbUHAQ65wLt0mVKkoPUdKo00
        G5J56D0CS+mtVVVJRAAAABDofC3rSBxC6ox6ZGP3ar9CQ0xBUwAAAAQAAAACV1JBUAAA
        AAQAAAADS1RZUAAAAAQAAAABV1BLWQAAACjTw0MGwZ1DffT0nj7RxX/sLt1RMk/OG5kG
        uVDPnOlpmB+OiguKdWP4UEJLWQAAACAF+LgJZ7dGQYhXF+x2m8SjXdOX3VWJv4teEo9t
        Gl4lT1VVSUQAAAAQaG/pMIbQTi27GpNWX2demUNMQVMAAAAEAAAAA1dSQVAAAAAEAAAA
        A0tUWVAAAAAEAAAAAFdQS1kAAAAoMmYObDe5Szbb/yRee/fP+KcU6EYF+jvLoMSXRlml
        N81p39psRjxCcVVVSUQAAAAQGYrhIkK/S+anxd2VUCSiVENMQVMAAAAEAAAABVdSQVAA
        AAAEAAAAA0tUWVAAAAAEAAAAAFdQS1kAAAAo0NL/EZ3oDVuNNFwK0hs65q+sFL5HQzbW
        u6eF8gsqcBH7s50FUnB7wFVVSUQAAAAQ2Sa9H4V7TqOPUE9RTZyo8UNMQVMAAAAEAAAA
        BldSQVAAAAAEAAAAA0tUWVAAAAAEAAAAAFdQS1kAAAAohoOsraGop4wIuls2gpV4fGBF
        hC3SeeqCELf7ti4P4CXuTea6dYvdTlVVSUQAAAAQT8+JX6cmSEiWukavxMI6oUNMQVMA
        AAAEAAAAB1dSQVAAAAAEAAAAA0tUWVAAAAAEAAAAAFdQS1kAAAAoXsQkmIIpXprOkqkg
        xAelrNpV4uXb+/IR+U3hZLxQiF/fyPB9g5cLElVVSUQAAAAQJyI2O+rQRKqp4rfxQYyL
        UkNMQVMAAAAEAAAACFdSQVAAAAAEAAAAA0tUWVAAAAAEAAAAAFdQS1kAAAAo/EjnFX+j
        /7mBU/FNU9PDE+FMe2VUibeJPfN3HzKns2IE8/cKZqZ3TlVVSUQAAAAQR8Uy3nUCTsih
        WLMJ+a2b50NMQVMAAAAEAAAACVdSQVAAAAAEAAAAA0tUWVAAAAAEAAAAAFdQS1kAAAAo
        mdNdFnBiyAn4oJOTO/YmnAxzPEKgYGHffURdwsNQh14MB1AhlQxJ81VVSUQAAAAQC52R
        4tG7QKSYqx4MdyXQI0NMQVMAAAAEAAAACldSQVAAAAAEAAAAA0tUWVAAAAAEAAAAAFdQ
        S1kAAAAoBI5I7O3sFneZRN8wKSx/ori9jBsDXMJe48o4gV0yn3Kqae3XPXjWlVVVSUQA
        AAAQ4hNqyjwlRvS6b2yqkn6tlkNMQVMAAAAEAAAAC1dSQVAAAAAEAAAAA0tUWVAAAAAE
        AAAAAFdQS1kAAAAoC9qwmTg17JjFSTYkhc/7obEAkGqf08JKkB1JTK+O6hWLN9rY5EFQ
        DlNJR04AAAAUFu4AQkSMfj81rjH8sZwPTqWpU48=
        </data>
</dict>
</plist>

2、解析XML个格式的数据
第二步我们获取到了相关的信息,我们把它解析出来,我这边通过如下的方法解析了xml文件:

/**
     * 获取TokenUpdate的pList文件Map数据
     * @param pList
     * @return
     */
    public static Map<String, String> parseTokenUpdate(String pList){
        String strBlank = replaceBlank(pList);
        Map<String, String> plistMap = new HashMap<String, String>();
        /**获取key、string、data列表数据**/
        List<String> keyList = getList(KEY,strBlank);
        List<String> stringList = getList(STRING,strBlank);
        List<String> dataList = getList(DATA,strBlank);
        /**组装数据称plistMap**/
        int stringNum = 0;
        for(int i=0;i<keyList.size();i++){
            if(keyList.get(i).equals(Token)){
                plistMap.put(Token, dataList.get(0));
            }else if(keyList.get(i).equals(UnlockToken)){
                plistMap.put(UnlockToken, dataList.get(1));
            }else{
                plistMap.put(keyList.get(i), stringList.get(stringNum));stringNum++;
            }
        }
        return plistMap;
    }

/**
     * 获取字符串列表数据
     * @param pattern
     * @param pList
     * @return
     */
    private static List<String> getList(String pattern,String pList){
        /**获取data列表数据**/
        List<String> dataList = new ArrayList<String>();
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(pList);
        while(m.find()) {
            dataList.add(m.group(1));
        }
        return dataList;
    }

    /**定义pList字符串解析正则式**/
    public static final String DATA = "\\<data>(.*?)\\</data>";
    public static final String STRING = "\\<string>(.*?)\\</string>";
    public static final String KEY = "\\<key>(.*?)\\</key>";
 

上面就是怎样解析xml文件获取相关的:Token、UnlockToken、UDID 、PushMagic。

2、数据解析和调用代码参考
调用如下:

 String info = "[获取到的xml格式的数据]"
 Map<String, String> plistMap = MdmUtils.parseTokenUpdate(info);
 String UnlockToken = plistMap.get(MdmUtils.UnlockToken);
 String UDID = plistMap.get(MdmUtils.UDID);
 String Topic = plistMap.get(MdmUtils.Topic);
 String OriToken = plistMap.get(MdmUtils.Token);
 String PushMagic = plistMap.get(MdmUtils.PushMagic);
 

3、总结:
上面只是部分核心代码,只作为参考。
 声明:www.mbaike.net 博客文章版权属于作者,受法律保护。未经作者同意不得转载。
标签 PushMagic Token Topic UDID UnlockToken
相关搜索
magic leap    magic    magic mouse    magic mouse 2    blackmagic    magic leap官网    the magic key    partition magic    black magic   
token验证    token是什么意思    token验证失败    java token    微信token    token验证失效    token验证原理    tokens    access token   
topics    topic是什么意思    topic考试官网    topik    topic韩语考试    topit    topic sentence    topik考试时间2015    kafka删除topic   
udid查询    udid是什么    ios udid    iphone udid    udid修改    uuid    udid怎么查    udidfaker    openudid   
unlock    unlock youku    unlock all v120    辐射4 unlock    unlockacgweb    unlock all v207    unlock all    unlockcn    unlock all v120下载   

共有 1 条网友评论

1 楼:大大大 发表于2017-01-17 15:16:38
你这方法有BUG,数组越界。
管理回复:多试试嘛

发布评论:

昵称: 邮箱: 验证码:
文明上网,理性发言!
© 移动互联百科(www.mbaike.net) | WAP站点 | 站长QQ:459104018 | 备案号:蜀ICP备14008230号-2