mirror of
https://gitee.com/yadong.zhang/JustAuth.git
synced 2026-01-07 19:31:48 +08:00
75 lines
1.6 KiB
Java
75 lines
1.6 KiB
Java
package me.zhyd.oauth.utils;
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import lombok.Data;
|
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* <p>
|
|
* 构造URL
|
|
* </p>
|
|
*
|
|
* @author yangkai.shen (https://xkcoding.com)
|
|
* @date Created in 2019-07-18 15:47
|
|
*/
|
|
@Data
|
|
public class UrlBuilder {
|
|
private String baseUrl;
|
|
|
|
private final Map<String, Object> params = new LinkedHashMap<>(4);
|
|
|
|
/**
|
|
* @param baseUrl 基础路径
|
|
* @return the new {@code UrlBuilder}
|
|
*/
|
|
public static UrlBuilder fromBaseUrl(String baseUrl) {
|
|
UrlBuilder builder = new UrlBuilder();
|
|
builder.setBaseUrl(baseUrl);
|
|
return builder;
|
|
}
|
|
|
|
/**
|
|
* 添加参数
|
|
*
|
|
* @param key 参数名称
|
|
* @param value 参数值
|
|
* @return this UrlBuilder
|
|
*/
|
|
public UrlBuilder queryParam(String key, Object value) {
|
|
Assert.notBlank(key, "参数名不能为空");
|
|
|
|
String valueAsString = (value != null ? value.toString() : null);
|
|
this.params.put(key, valueAsString);
|
|
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* 构造url
|
|
*
|
|
* @return url
|
|
*/
|
|
public String build() {
|
|
return this.build(false);
|
|
}
|
|
|
|
/**
|
|
* 构造url
|
|
*
|
|
* @param encode 转码
|
|
* @return url
|
|
*/
|
|
public String build(boolean encode) {
|
|
if (MapUtil.isEmpty(this.params)) {
|
|
return this.baseUrl;
|
|
}
|
|
String baseUrl = StrUtil.addSuffixIfNot(this.baseUrl, "?");
|
|
String paramString = GlobalAuthUtil.parseMapToString(this.params, encode);
|
|
return baseUrl + paramString;
|
|
}
|
|
}
|