SpringBoot - Web请求Get方式Url拼接参数
public static URI getExpandUrl(String url, Object paramObj) {
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
if (paramObj instanceof Map) {
for (Map.Entry<String, Object> param : ((Map<String, Object>) paramObj).entrySet()) {
if (null != param.getValue()) {
builder.queryParam(param.getKey(), param.getValue());
}
}
} else {
for (Field param : paramObj.getClass().getDeclaredFields()) {
param.setAccessible(true);
try {
Object value = param.get(paramObj);
if (null != value) {
if (value instanceof List) {
builder.queryParam(param.getName(), (List) value);
} else {
builder.queryParam(param.getName(), value);
}
}
} catch (IllegalAccessException e) {
log.warn("字段:{}值获取失败,异常:{}", param.getName(), e.getMessage());
}
}
}
return builder.build().encode().toUri();
}