java解析url

时间:2025-03-19 09:34:50

java解析url

将形如

String url = "rtmp://192.168.31.250/live?token=D1F9275B94384950A220039F1A7C8BD5&type=3";

解析为map

{baseUrl=rtmp://192.168.31.250/live, 
param={type=3, 
token=D1F9275B94384950A220039F1A7C8BD5}}

直接上代码

package com.tel.common.utils;

import java.util.HashMap;
import java.util.Map;

public class UrlUtil {
    /**
     * 解析url
     *
     * @param url
     * @return
     */
    public static Map parse(String url) {
        Map map = new HashMap();
        if (url == null) {
            return map;
        }
        url = url.trim();
        if (url.equals("")) {
            return map;
        }
        String[] urlParts = url.split("\\?");
        map.put("baseUrl",urlParts[0]);
        //没有参数
        if (urlParts.length == 1) {
            return map;
        }
        //有参数
        String[] params = urlParts[1].split("&");
        Map paramMap = new HashMap<>();
        for (String param : params) {
            String[] keyValue = param.split("=");
            paramMap.put(keyValue[0], keyValue[1]);
            map.put("param",paramMap);
        }
        return map;
    }
}