All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.utils.common.assist.url.DevJavaUrlParser Maven / Gradle / Ivy

package dev.utils.common.assist.url;

import java.util.LinkedHashMap;
import java.util.Map;

import dev.utils.common.HttpParamsUtils;
import dev.utils.common.StringUtils;

/**
 * detail: Dev 库 Java 通用 Url 解析器
 * @author Ttt
 * 
 *     不依赖 android api
 * 
*/ public class DevJavaUrlParser implements UrlExtras.Parser { // 完整 Url private String mUrl; // Url 前缀 ( 去除参数部分 ) private String mUrlPrefix; // Url 参数部分字符串 private String mUrlParams; // Url Params Map private Map mUrlParamsMap; // Url Params Map ( 参数值进行 UrlDecode ) private Map mUrlParamsDecodeMap; // 是否解析、转换 Param Map private boolean mConvertMap = true; // ==================== // = UrlExtras.Parser = // ==================== @Override public UrlExtras.Parser reset(final String url) { return new DevJavaUrlParser().setUrl(url); } @Override public UrlExtras.Parser setUrl(final String url) { initialize(url); return this; } @Override public String getUrl() { return this.mUrl; } @Override public String getUrlByPrefix() { return this.mUrlPrefix; } @Override public String getUrlByParams() { return this.mUrlParams; } @Override public Map getUrlParams() { return this.mUrlParamsMap; } @Override public Map getUrlParamsDecode() { return this.mUrlParamsDecodeMap; } @Override public boolean isConvertMap() { return this.mConvertMap; } @Override public UrlExtras.Parser setConvertMap(final boolean convertMap) { this.mConvertMap = convertMap; return this; } // ========== // = 内部方法 = // ========== /** * 初始化方法 *
     *     会清空 url 字符串全部空格、Tab、换行符, 如有特殊符号需提前自行转义
     * 
* @param url 待处理完整 Url */ private void initialize(final String url) { this.mUrl = StringUtils.clearSpaceTabLine(url); this.mUrlPrefix = null; this.mUrlParams = null; this.mUrlParamsMap = null; this.mUrlParamsDecodeMap = null; if (StringUtils.isNotEmpty(mUrl)) { String[] array = HttpParamsUtils.getUrlParamsArray(mUrl); this.mUrlPrefix = array[0]; this.mUrlParams = array[1]; if (mConvertMap && StringUtils.isNotEmpty(mUrlParams)) { this.mUrlParamsMap = HttpParamsUtils.splitParams( mUrlParams, false ); this.mUrlParamsDecodeMap = new LinkedHashMap<>(); for (Map.Entry entry : mUrlParamsMap.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); String decode = StringUtils.urlDecodeWhile(value, 10); this.mUrlParamsDecodeMap.put( key, StringUtils.checkValue(value, decode) ); } } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy